{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-audit-core",
      "artifactVersion": "10.10-HF33",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.platform.audit",
          "org.nuxeo.ecm.platform.audit.api",
          "org.nuxeo.ecm.platform.audit.web"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit",
        "id": "grp:org.nuxeo.ecm.platform.audit",
        "name": "org.nuxeo.ecm.platform.audit",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.platform.audit",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.persistence.PersistenceComponent--hibernate",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.persistence/Contributions/org.nuxeo.ecm.platform.audit.service.persistence--hibernate",
              "id": "org.nuxeo.ecm.platform.audit.service.persistence--hibernate",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.persistence.PersistenceComponent",
                "name": "org.nuxeo.ecm.core.persistence.PersistenceComponent",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"hibernate\" target=\"org.nuxeo.ecm.core.persistence.PersistenceComponent\">\n    <hibernateConfiguration name=\"nxaudit-logs\">\n      <datasource>nxaudit-logs</datasource>\n      <properties>\n        <property name=\"hibernate.hbm2ddl.auto\">update</property>\n      </properties>\n    </hibernateConfiguration>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.persistence",
          "name": "org.nuxeo.ecm.platform.audit.service.persistence",
          "requirements": [],
          "resolutionOrder": 290,
          "services": [],
          "startOrder": 296,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.ecm.platform.audit.service.persistence\">\n\n  <extension target=\"org.nuxeo.ecm.core.persistence.PersistenceComponent\"\n    point=\"hibernate\">\n    <hibernateConfiguration name=\"nxaudit-logs\">\n      <datasource>nxaudit-logs</datasource>\n      <properties>\n        <property name=\"hibernate.hbm2ddl.auto\">update</property>\n      </properties>\n    </hibernateConfiguration>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nxaudit-persistence-config.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.core.types-contrib/Contributions/org.nuxeo.ecm.platform.audit.core.types-contrib--schema",
              "id": "org.nuxeo.ecm.platform.audit.core.types-contrib--schema",
              "registrationOrder": 12,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"basicauditsearch\" prefix=\"bas\" src=\"schemas/basicauditsearch.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.core.types-contrib/Contributions/org.nuxeo.ecm.platform.audit.core.types-contrib--doctype",
              "id": "org.nuxeo.ecm.platform.audit.core.types-contrib--doctype",
              "registrationOrder": 12,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <facet name=\"ForceAudit\"/>\n\n    <doctype extends=\"Document\" name=\"BasicAuditSearch\">\n      <schema name=\"basicauditsearch\"/>\n      <schema name=\"dublincore\"/>\n      <schema name=\"common\"/>\n    </doctype>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.core.types-contrib",
          "name": "org.nuxeo.ecm.platform.audit.core.types-contrib",
          "requirements": [],
          "resolutionOrder": 291,
          "services": [],
          "startOrder": 291,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.audit.core.types-contrib\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"schema\">\n    <schema name=\"basicauditsearch\" prefix=\"bas\" src=\"schemas/basicauditsearch.xsd\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"doctype\">\n\n    <facet name=\"ForceAudit\" />\n\n    <doctype name=\"BasicAuditSearch\" extends=\"Document\">\n      <schema name=\"basicauditsearch\" />\n      <schema name=\"dublincore\" />\n      <schema name=\"common\" />\n    </doctype>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/core-type-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.directory.GenericDirectory--directories",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.audit.directoryContrib/Contributions/org.nuxeo.audit.directoryContrib--directories",
              "id": "org.nuxeo.audit.directoryContrib--directories",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.directory.GenericDirectory",
                "name": "org.nuxeo.ecm.directory.GenericDirectory",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"directories\" target=\"org.nuxeo.ecm.directory.GenericDirectory\">\n\n    <directory extends=\"template-vocabulary\" name=\"eventTypes\">\n      <dataFile>directories/event-types.csv</dataFile>\n      <types>\n        <type>system</type>\n      </types>\n    </directory>\n\n    <directory extends=\"template-vocabulary\" name=\"eventCategories\">\n      <dataFile>directories/event-categories.csv</dataFile>\n      <types>\n        <type>system</type>\n      </types>\n    </directory>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.audit.directoryContrib",
          "name": "org.nuxeo.audit.directoryContrib",
          "requirements": [],
          "resolutionOrder": 292,
          "services": [],
          "startOrder": 37,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.audit.directoryContrib\">\n\n  <extension target=\"org.nuxeo.ecm.directory.GenericDirectory\" point=\"directories\">\n\n    <directory name=\"eventTypes\" extends=\"template-vocabulary\">\n      <dataFile>directories/event-types.csv</dataFile>\n      <types>\n        <type>system</type>\n      </types>\n    </directory>\n\n    <directory name=\"eventCategories\" extends=\"template-vocabulary\">\n      <dataFile>directories/event-categories.csv</dataFile>\n      <types>\n        <type>system</type>\n      </types>\n    </directory>\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/directories-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.query.api.PageProviderService--providers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.PageProviderservice.contrib/Contributions/org.nuxeo.ecm.platform.audit.PageProviderservice.contrib--providers",
              "id": "org.nuxeo.ecm.platform.audit.PageProviderservice.contrib--providers",
              "registrationOrder": 10,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.query.api.PageProviderService",
                "name": "org.nuxeo.ecm.platform.query.api.PageProviderService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"providers\" target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\">\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.audit.api.AuditPageProvider\" name=\"DOCUMENT_HISTORY_PROVIDER_OLD\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <fixedPart>\n          log.docUUID = ?\n        </fixedPart>\n        <predicate operator=\"BETWEEN\" parameter=\"log.eventDate\">\n          <field name=\"startDate\" schema=\"basicauditsearch\"/>\n          <field name=\"endDate\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"IN\" parameter=\"log.category\">\n          <field name=\"eventCategories\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"=\" parameter=\"log.eventId\">\n          <field name=\"eventId\" schema=\"basicauditsearch\"/>\n        </predicate>\n      </whereClause>\n      <sort ascending=\"true\" column=\"log.eventDate\"/>\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.audit.api.AuditPageProvider\" name=\"LATEST_AUDITED_CREATED_USERS_OR_GROUPS_PROVIDER\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <fixedPart>\n          log.eventId = 'user_created' OR log.eventId = 'group_created'\n        </fixedPart>\n      </whereClause>\n      <sort ascending=\"false\" column=\"log.eventDate\"/>\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.audit.provider.LatestCreatedUsersOrGroupsPageProvider\" name=\"LATEST_CREATED_USERS_OR_GROUPS_PROVIDER\">\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.audit.api.document.DocumentHistoryPageProvider\" name=\"DOCUMENT_HISTORY_PROVIDER\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <predicate operator=\"BETWEEN\" parameter=\"log.eventDate\">\n          <field name=\"startDate\" schema=\"basicauditsearch\"/>\n          <field name=\"endDate\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"=\" parameter=\"log.category\">\n          <field name=\"eventCategory\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"IN\" parameter=\"log.category\">\n          <field name=\"eventCategories\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"=\" parameter=\"log.eventId\">\n          <field name=\"eventId\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"IN\" parameter=\"log.eventId\">\n          <field name=\"eventIds\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"=\" parameter=\"log.principalName\">\n          <field name=\"principalName\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"IN\" parameter=\"log.principalName\">\n          <field name=\"principalNames\" schema=\"basicauditsearch\"/>\n        </predicate>\n      </whereClause>\n      <sort ascending=\"false\" column=\"log.eventDate\"/>\n      <sort ascending=\"false\" column=\"log.id\"/>\n      <pageSize>10</pageSize>\n      <maxPageSize>1000</maxPageSize>\n    </genericPageProvider>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.PageProviderservice.contrib",
          "name": "org.nuxeo.ecm.platform.audit.PageProviderservice.contrib",
          "requirements": [],
          "resolutionOrder": 293,
          "services": [],
          "startOrder": 288,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.audit.PageProviderservice.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\"\n    point=\"providers\">\n\n    <genericPageProvider name=\"DOCUMENT_HISTORY_PROVIDER_OLD\"\n      class=\"org.nuxeo.ecm.platform.audit.api.AuditPageProvider\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <fixedPart>\n          log.docUUID = ?\n        </fixedPart>\n        <predicate parameter=\"log.eventDate\" operator=\"BETWEEN\">\n          <field schema=\"basicauditsearch\" name=\"startDate\" />\n          <field schema=\"basicauditsearch\" name=\"endDate\" />\n        </predicate>\n        <predicate parameter=\"log.category\" operator=\"IN\">\n          <field schema=\"basicauditsearch\" name=\"eventCategories\" />\n        </predicate>\n        <predicate parameter=\"log.eventId\" operator=\"=\">\n          <field schema=\"basicauditsearch\" name=\"eventId\" />\n        </predicate>\n      </whereClause>\n      <sort column=\"log.eventDate\" ascending=\"true\" />\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"LATEST_AUDITED_CREATED_USERS_OR_GROUPS_PROVIDER\"\n      class=\"org.nuxeo.ecm.platform.audit.api.AuditPageProvider\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <fixedPart>\n          log.eventId = 'user_created' OR log.eventId = 'group_created'\n        </fixedPart>\n      </whereClause>\n      <sort column=\"log.eventDate\" ascending=\"false\" />\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"LATEST_CREATED_USERS_OR_GROUPS_PROVIDER\"\n      class=\"org.nuxeo.ecm.platform.audit.provider.LatestCreatedUsersOrGroupsPageProvider\">\n    </genericPageProvider>\n\n    <genericPageProvider name=\"DOCUMENT_HISTORY_PROVIDER\"\n      class=\"org.nuxeo.ecm.platform.audit.api.document.DocumentHistoryPageProvider\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <predicate parameter=\"log.eventDate\" operator=\"BETWEEN\">\n          <field schema=\"basicauditsearch\" name=\"startDate\" />\n          <field schema=\"basicauditsearch\" name=\"endDate\" />\n        </predicate>\n        <predicate parameter=\"log.category\" operator=\"=\">\n          <field schema=\"basicauditsearch\" name=\"eventCategory\" />\n        </predicate>\n        <predicate parameter=\"log.category\" operator=\"IN\">\n          <field schema=\"basicauditsearch\" name=\"eventCategories\" />\n        </predicate>\n        <predicate parameter=\"log.eventId\" operator=\"=\">\n          <field schema=\"basicauditsearch\" name=\"eventId\" />\n        </predicate>\n        <predicate parameter=\"log.eventId\" operator=\"IN\">\n          <field schema=\"basicauditsearch\" name=\"eventIds\" />\n        </predicate>\n        <predicate parameter=\"log.principalName\" operator=\"=\">\n          <field schema=\"basicauditsearch\" name=\"principalName\" />\n        </predicate>\n        <predicate parameter=\"log.principalName\" operator=\"IN\">\n          <field schema=\"basicauditsearch\" name=\"principalNames\" />\n        </predicate>\n      </whereClause>\n      <sort column=\"log.eventDate\" ascending=\"false\" />\n      <sort column=\"log.id\" ascending=\"false\" />\n      <pageSize>10</pageSize>\n      <maxPageSize>1000</maxPageSize>\n    </genericPageProvider>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/pageprovider-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Core IO registered marshallers set.\n  \n",
          "documentationHtml": "<p>\nCore IO registered marshallers set.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.io.marshallers/Contributions/org.nuxeo.ecm.platform.audit.io.marshallers--marshallers",
              "id": "org.nuxeo.ecm.platform.audit.io.marshallers--marshallers",
              "registrationOrder": 5,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <!-- preview document enricher -->\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryListJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryCSVWriter\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.io.marshallers",
          "name": "org.nuxeo.ecm.platform.audit.io.marshallers",
          "requirements": [],
          "resolutionOrder": 295,
          "services": [],
          "startOrder": 293,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.audit.io.marshallers\" version=\"1.0.0\">\n  <documentation>\n    Core IO registered marshallers set.\n  </documentation>\n  <extension target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" point=\"marshallers\">\n    <!-- preview document enricher -->\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryListJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryCSVWriter\" enable=\"true\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/marshallers-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "Contribute the search event to the Audit configuration :\n    this is\n    only safe to do so when the ES backend if used for Audit\n  \n",
          "documentationHtml": "<p>\nContribute the search event to the Audit configuration :\nthis is\nonly safe to do so when the ES backend if used for Audit\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.user.contrib/Contributions/org.nuxeo.ecm.platform.audit.user.contrib--event",
              "id": "org.nuxeo.ecm.platform.audit.user.contrib--event",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "name": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"event\" target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n    <event name=\"user_created\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"user_deleted\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"user_modified\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"group_created\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"group_deleted\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"group_modified\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"retentionActiveChanged\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.retentionActive}\" key=\"retentionActive\"/>\n      </extendedInfos>\n    </event>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.user.contrib",
          "name": "org.nuxeo.ecm.platform.audit.user.contrib",
          "requirements": [],
          "resolutionOrder": 296,
          "services": [],
          "startOrder": 297,
          "version": "10.10-HF33",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.audit.user.contrib\" version=\"1.0\">\n\n  <documentation>Contribute the search event to the Audit configuration :\n    this is\n    only safe to do so when the ES backend if used for Audit\n  </documentation>\n\n  <extension target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\"\n    point=\"event\">\n    <event name=\"user_created\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"user_deleted\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"user_modified\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"group_created\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"group_deleted\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"group_modified\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"retentionActiveChanged\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.retentionActive}\" key=\"retentionActive\" />\n      </extendedInfos>\n    </event>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/user-audit-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
          "declaredStartOrder": 51,
          "documentation": "\n    Service that deals with audit.\n    <p/>\n\n    Most of the work is done at EJB layer though.\n\n    This supports JMS events based\n    notifications on a dedicated topic.\n\n    @version 1.0\n    @author Julien Anguenot\n  \n",
          "documentationHtml": "<p>\nService that deals with audit.\n</p><p>\nMost of the work is done at EJB layer though.\n</p><p>\nThis supports JMS events based\nnotifications on a dedicated topic.\n</p><p>\n&#64;version 1.0\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.EventDescriptor"
              ],
              "documentation": "\n      This service registers auditable events.\n      <p/>\n\n      Registered events are dummy strings for now.\n      <p/>\n\n      This service is used to filter auditable events from the JMS topic based\n      on their names. The following XML snipset give figures out how the default\n      event types are selected for auditing.\n\n      <programlisting>\n    <extension point=\"event\" target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n        <event name=\"documentCreated\"/>\n        <event name=\"documentCreatedByCopy\"/>\n        <event name=\"documentDuplicated\"/>\n        <event name=\"documentMoved\"/>\n        <event name=\"documentRemoved\"/>\n        <event name=\"documentModified\"/>\n        <event name=\"documentLocked\"/>\n        <event name=\"documentUnlocked\"/>\n        <event name=\"documentSecurityUpdated\"/>\n        <event name=\"lifecycle_transition_event\"/>\n        <event name=\"documentTrashed\"/>\n        <event name=\"documentUntrashed\"/>\n    </extension>\n</programlisting>\n",
              "documentationHtml": "<p>\nThis service registers auditable events.\n</p><p>\nRegistered events are dummy strings for now.\n</p><p>\nThis service is used to filter auditable events from the JMS topic based\non their names. The following XML snipset give figures out how the default\nevent types are selected for auditing.\n</p><p>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "label": "event (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "event",
              "version": "10.10-HF33"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.ExtendedInfoDescriptor"
              ],
              "documentation": "\n      This service registered extended info mappings.\n\n      <p/>\n\n      This service is used to evaluate EL expression using document as context\n      regist:ering results into a map indexed by names.\n    \n",
              "documentationHtml": "<p>\nThis service registered extended info mappings.\n</p><p>\nThis service is used to evaluate EL expression using document as context\nregist:ering results into a map indexed by names.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--extendedInfo",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--extendedInfo",
              "label": "extendedInfo (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "extendedInfo",
              "version": "10.10-HF33"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.AdapterDescriptor"
              ],
              "documentation": "\n      register the adapter that will be injected in EL context\n    \n",
              "documentationHtml": "<p>\nregister the adapter that will be injected in EL context\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--adapter",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--adapter",
              "label": "adapter (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "adapter",
              "version": "10.10-HF33"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.AuditBackendDescriptor"
              ],
              "documentation": "\n      Allows to register a backend implementation for the Audit Service\n    \n",
              "documentationHtml": "<p>\nAllows to register a backend implementation for the Audit Service\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--backend",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--backend",
              "label": "backend (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "backend",
              "version": "10.10-HF33"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.AuditStorageDescriptor"
              ],
              "documentation": "\n      Allows to register a storage implementation for the Audit Service\n    \n",
              "documentationHtml": "<p>\nAllows to register a storage implementation for the Audit Service\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--storage",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--storage",
              "label": "storage (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "storage",
              "version": "10.10-HF33"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.AuditBulkerDescriptor"
              ],
              "documentation": "\n       CAUTION: Deprecated since 10.10-HF33, audit bulker is now handled with nuxeo-stream, no replacement\n      Allows to configure bulk processing\n    \n",
              "documentationHtml": "<p>\nCAUTION: Deprecated since 10.10-HF33, audit bulker is now handled with nuxeo-stream, no replacement\nAllows to configure bulk processing\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--bulk",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--bulk",
              "label": "bulk (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "bulk",
              "version": "10.10-HF33"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Those default auditable events match Nuxeo core base events.\n      <p/>\n\n      If you are sending new Nuxeo core events and want them audited, this is\n      the place to declare them NXAudit side.\n    \n",
              "documentationHtml": "<p>\nThose default auditable events match Nuxeo core base events.\n</p><p>\nIf you are sending new Nuxeo core events and want them audited, this is\nthe place to declare them NXAudit side.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Contributions/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "name": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"event\" target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n    <documentation>\n      Those default auditable events match Nuxeo core base events.\n      <p/>\n      If you are sending new Nuxeo core events and want them audited, this is\n      the place to declare them NXAudit side.\n    </documentation>\n\n    <event name=\"documentCreated\"/>\n    <event name=\"documentCreatedByCopy\"/>\n    <event name=\"documentDuplicated\"/>\n    <event name=\"documentMoved\"/>\n    <event name=\"documentRemoved\"/>\n    <event name=\"documentModified\"/>\n    <event name=\"documentLocked\"/>\n    <event name=\"documentUnlocked\"/>\n    <event name=\"documentSecurityUpdated\"/>\n    <event name=\"retentionActiveChanged\"/>\n    <event name=\"lifecycle_transition_event\"/>\n    <event name=\"loginSuccess\"/>\n    <event name=\"loginFailed\"/>\n    <event name=\"logout\"/>\n    <event name=\"documentCheckedIn\"/>\n    <event name=\"versionRemoved\"/>\n    <event name=\"documentProxyPublished\"/>\n    <event name=\"sectionContentPublished\"/>\n    <event name=\"documentRestored\"/>\n    <event name=\"download\"/>\n    <event name=\"documentTrashed\"/>\n    <event name=\"documentUntrashed\"/>\n    <event name=\"addedToCollection\"/>\n    <event name=\"removedFromCollection\"/>\n    <event name=\"afterMakeRecord\"/>\n    <event name=\"afterSetRetention\"/>\n    <event name=\"afterExtendRetention\"/>\n    <event name=\"retentionExpired\"/>\n    <event name=\"afterSetLegalHold\"/>\n    <event name=\"afterRemoveLegalHold\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--backend",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Contributions/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--backend",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--backend",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "name": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"backend\" target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n\n    <backend class=\"org.nuxeo.ecm.platform.audit.service.DefaultAuditBackend\">\n       <require>org.nuxeo.ecm.core.persistence.PersistenceComponent</require>\n    </backend>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Contributions/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--listener",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--listener",
              "registrationOrder": 45,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.audit.listener.StreamAuditEventListener\" name=\"auditLoggerListener\" postCommit=\"false\" priority=\"500\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--logConfig",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Contributions/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--logConfig",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--logConfig",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"logConfig\" target=\"org.nuxeo.runtime.stream.service\">\n    <logConfig name=\"audit\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--streamProcessor",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Contributions/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--streamProcessor",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--streamProcessor",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"streamProcessor\" target=\"org.nuxeo.runtime.stream.service\">\n    <streamProcessor class=\"org.nuxeo.ecm.platform.audit.impl.StreamAuditWriter\" defaultCodec=\"legacy\" defaultConcurrency=\"1\" defaultPartitions=\"1\" enabled=\"true\" logConfig=\"audit\" name=\"auditLogWriter\">\n      <policy batchCapacity=\"25\" batchThreshold=\"500ms\" continueOnFailure=\"false\" delay=\"1s\" maxDelay=\"60s\" maxRetries=\"20\" name=\"AuditLogWriter\"/>\n    </streamProcessor>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
          "name": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
          "requirements": [
            "org.nuxeo.ecm.platform.audit.service.persistence",
            "org.nuxeo.runtime.metrics.MetricsService"
          ],
          "resolutionOrder": 835,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Services/org.nuxeo.ecm.platform.audit.service.AuditBackend",
              "id": "org.nuxeo.ecm.platform.audit.service.AuditBackend",
              "overriden": false,
              "version": "10.10-HF33"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Services/org.nuxeo.ecm.platform.audit.api.AuditReader",
              "id": "org.nuxeo.ecm.platform.audit.api.AuditReader",
              "overriden": false,
              "version": "10.10-HF33"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Services/org.nuxeo.ecm.platform.audit.api.AuditLogger",
              "id": "org.nuxeo.ecm.platform.audit.api.AuditLogger",
              "overriden": false,
              "version": "10.10-HF33"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Services/org.nuxeo.ecm.platform.audit.api.Logs",
              "id": "org.nuxeo.ecm.platform.audit.api.Logs",
              "overriden": false,
              "version": "10.10-HF33"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Services/org.nuxeo.ecm.platform.audit.api.DocumentHistoryReader",
              "id": "org.nuxeo.ecm.platform.audit.api.DocumentHistoryReader",
              "overriden": false,
              "version": "10.10-HF33"
            }
          ],
          "startOrder": 808,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n\n  <require>org.nuxeo.runtime.metrics.MetricsService</require>\n\n  <documentation>\n    Service that deals with audit.\n    <p />\n    Most of the work is done at EJB layer though.\n\n    This supports JMS events based\n    notifications on a dedicated topic.\n\n    @version 1.0\n    @author Julien Anguenot\n  </documentation>\n\n  <!-- needed so that activation has access to persistence -->\n  <require>org.nuxeo.ecm.platform.audit.service.persistence</require>\n\n  <implementation class=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.audit.service.AuditBackend\"/>\n    <provide interface=\"org.nuxeo.ecm.platform.audit.api.AuditReader\" />\n    <provide interface=\"org.nuxeo.ecm.platform.audit.api.AuditLogger\" />\n    <provide interface=\"org.nuxeo.ecm.platform.audit.api.Logs\" />\n    <provide interface=\"org.nuxeo.ecm.platform.audit.api.DocumentHistoryReader\" />\n  </service>\n\n  <extension-point name=\"event\">\n    <documentation>\n      This service registers auditable events.\n      <p />\n      Registered events are dummy strings for now.\n      <p />\n      This service is used to filter auditable events from the JMS topic based\n      on their names. The following XML snipset give figures out how the default\n      event types are selected for auditing.\n\n      <programlisting>\n        <extension target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\"\n          point=\"event\">\n          <event name=\"documentCreated\" />\n          <event name=\"documentCreatedByCopy\" />\n          <event name=\"documentDuplicated\" />\n          <event name=\"documentMoved\" />\n          <event name=\"documentRemoved\" />\n          <event name=\"documentModified\" />\n          <event name=\"documentLocked\" />\n          <event name=\"documentUnlocked\" />\n          <event name=\"documentSecurityUpdated\" />\n          <event name=\"lifecycle_transition_event\" />\n          <event name=\"documentTrashed\" />\n          <event name=\"documentUntrashed\" />\n        </extension>\n      </programlisting>\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.audit.service.extension.EventDescriptor\" />\n\n  </extension-point>\n\n  <extension-point name=\"extendedInfo\">\n\n    <documentation>\n      This service registered extended info mappings.\n\n      <p />\n      This service is used to evaluate EL expression using document as context\n      regist:ering results into a map indexed by names.\n    </documentation>\n\n    <object\n      class=\"org.nuxeo.ecm.platform.audit.service.extension.ExtendedInfoDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"adapter\">\n\n    <documentation>\n      register the adapter that will be injected in EL context\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.audit.service.extension.AdapterDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"backend\">\n\n    <documentation>\n      Allows to register a backend implementation for the Audit Service\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.audit.service.extension.AuditBackendDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"storage\">\n\n    <documentation>\n      Allows to register a storage implementation for the Audit Service\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.audit.service.extension.AuditStorageDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"bulk\">\n     <documentation>\n       CAUTION: Deprecated since 10.10-HF33, audit bulker is now handled with nuxeo-stream, no replacement\n      Allows to configure bulk processing\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.audit.service.extension.AuditBulkerDescriptor\"/>\n  </extension-point>\n\n  <extension target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\"\n    point=\"event\">\n    <documentation>\n      Those default auditable events match Nuxeo core base events.\n      <p />\n      If you are sending new Nuxeo core events and want them audited, this is\n      the place to declare them NXAudit side.\n    </documentation>\n\n    <event name=\"documentCreated\" />\n    <event name=\"documentCreatedByCopy\" />\n    <event name=\"documentDuplicated\" />\n    <event name=\"documentMoved\" />\n    <event name=\"documentRemoved\" />\n    <event name=\"documentModified\" />\n    <event name=\"documentLocked\" />\n    <event name=\"documentUnlocked\" />\n    <event name=\"documentSecurityUpdated\" />\n    <event name=\"retentionActiveChanged\" />\n    <event name=\"lifecycle_transition_event\" />\n    <event name=\"loginSuccess\" />\n    <event name=\"loginFailed\" />\n    <event name=\"logout\" />\n    <event name=\"documentCheckedIn\" />\n    <event name=\"versionRemoved\" />\n    <event name=\"documentProxyPublished\" />\n    <event name=\"sectionContentPublished\" />\n    <event name=\"documentRestored\" />\n    <event name=\"download\" />\n    <event name=\"documentTrashed\" />\n    <event name=\"documentUntrashed\" />\n    <event name=\"addedToCollection\" />\n    <event name=\"removedFromCollection\" />\n    <event name=\"afterMakeRecord\" />\n    <event name=\"afterSetRetention\" />\n    <event name=\"afterExtendRetention\" />\n    <event name=\"retentionExpired\" />\n    <event name=\"afterSetLegalHold\" />\n    <event name=\"afterRemoveLegalHold\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\"\n    point=\"backend\">\n\n    <backend class=\"org.nuxeo.ecm.platform.audit.service.DefaultAuditBackend\">\n       <require>org.nuxeo.ecm.core.persistence.PersistenceComponent</require>\n    </backend>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\" point=\"listener\">\n    <listener name=\"auditLoggerListener\" async=\"false\" postCommit=\"false\" priority=\"500\"\n              class=\"org.nuxeo.ecm.platform.audit.listener.StreamAuditEventListener\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.stream.service\" point=\"logConfig\">\n    <logConfig name=\"${nuxeo.stream.audit.log.config:=audit}\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.stream.service\" point=\"streamProcessor\">\n    <streamProcessor name=\"auditLogWriter\" logConfig=\"${nuxeo.stream.audit.log.config:=audit}\"\n                     defaultConcurrency=\"1\" defaultPartitions=\"1\" defaultCodec=\"${nuxeo.stream.audit.log.codec:=legacy}\"\n                     class=\"org.nuxeo.ecm.platform.audit.impl.StreamAuditWriter\"\n                     enabled=\"${nuxeo.stream.audit.enabled:=true}\">\n      <policy name=\"AuditLogWriter\" batchCapacity=\"${nuxeo.stream.audit.batch.size:=10}\"\n              batchThreshold=\"${nuxeo.stream.audit.batch.threshold.ms:=50}ms\"\n              maxRetries=\"20\" delay=\"1s\" maxDelay=\"60s\" continueOnFailure=\"false\" />\n    </streamProcessor>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nxaudit-service.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-platform-audit-core-10.10-HF33.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit",
      "id": "org.nuxeo.ecm.platform.audit",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_265\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 0.0.0.SNAPSHOT\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.audit\r\nBundle-Category: web,stateful\r\nBundle-ActivationPolicy: lazy\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nBundle-Vendor: Nuxeo\r\nImport-Package: de.odysseus.el;version=\"2.1.2\",javax.annotation;versio\r\n n=\"1.0\",javax.el,javax.management,javax.persistence,org.apache.common\r\n s.lang.builder,org.apache.commons.logging,org.nuxeo.common.xmap.annot\r\n ation,org.nuxeo.ecm.core;api=split,org.nuxeo.ecm.core.api;api=split,o\r\n rg.nuxeo.ecm.core.api.event,org.nuxeo.ecm.core.api.repository,org.nux\r\n eo.ecm.core.api.security,org.nuxeo.ecm.core.event,org.nuxeo.ecm.core.\r\n event.impl,org.nuxeo.ecm.core.persistence,org.nuxeo.ecm.directory;api\r\n =split,org.nuxeo.ecm.platform.audit.api,org.nuxeo.ecm.platform.audit.\r\n api.query,org.nuxeo.ecm.platform.el,org.nuxeo.runtime.api,org.nuxeo.r\r\n untime.management,org.nuxeo.runtime.model,org.osgi.framework;version=\r\n \"1.5.0\"\r\nNuxeo-Component: OSGI-INF/nxaudit-service.xml,OSGI-INF/nxaudit-persist\r\n ence-config.xml,OSGI-INF/core-type-contrib.xml,OSGI-INF/directories-c\r\n ontrib.xml,OSGI-INF/pageprovider-contrib.xml,OSGI-INF/marshallers-con\r\n trib.xml, OSGI-INF/user-audit-contrib.xml\r\nExport-Package: org.nuxeo.ecm.platform.audit.listener,org.nuxeo.ecm.pl\r\n atform.audit.service,org.nuxeo.ecm.platform.audit.service.extension,o\r\n rg.nuxeo.ecm.platform.audit.service.management\r\nBundle-Name: NXAudit Core\r\nBundle-ClassPath: .\r\nBundle-Localization: plugin\r\nPrivate-Package: .\r\n\r\n",
      "maxResolutionOrder": 835,
      "minResolutionOrder": 290,
      "packages": [
        "nuxeo-10.10-HF01",
        "nuxeo-10.10-HF02",
        "nuxeo-10.10-HF03",
        "nuxeo-10.10-HF04",
        "nuxeo-10.10-HF05",
        "nuxeo-10.10-HF06",
        "nuxeo-10.10-HF07",
        "nuxeo-10.10-HF08",
        "nuxeo-10.10-HF09",
        "nuxeo-10.10-HF10",
        "nuxeo-10.10-HF11",
        "nuxeo-10.10-HF12",
        "nuxeo-10.10-HF13",
        "nuxeo-10.10-HF14",
        "nuxeo-10.10-HF15",
        "nuxeo-10.10-HF16",
        "nuxeo-10.10-HF17",
        "nuxeo-10.10-HF18",
        "nuxeo-10.10-HF19",
        "nuxeo-10.10-HF20",
        "nuxeo-10.10-HF21",
        "nuxeo-10.10-HF22",
        "nuxeo-10.10-HF23",
        "nuxeo-10.10-HF24",
        "nuxeo-10.10-HF25",
        "nuxeo-10.10-HF26",
        "nuxeo-10.10-HF27",
        "nuxeo-10.10-HF28",
        "nuxeo-10.10-HF29",
        "nuxeo-10.10-HF30",
        "nuxeo-10.10-HF31",
        "nuxeo-10.10-HF32",
        "nuxeo-10.10-HF33"
      ],
      "requirements": [],
      "version": "10.10-HF33"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-core-management",
      "artifactVersion": "10.10-HF19",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.core.management",
          "org.nuxeo.ecm.core.management.jtajca"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management",
        "id": "grp:org.nuxeo.ecm.core.management",
        "name": "org.nuxeo.ecm.core.management",
        "parentIds": [
          "grp:org.nuxeo.ecm.core"
        ],
        "readmes": [],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.core.management",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.typesContrib/Contributions/org.nuxeo.ecm.core.management.typesContrib--schema",
              "id": "org.nuxeo.ecm.core.management.typesContrib--schema",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "10.10-HF19",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"status\" src=\"schemas/status.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.typesContrib/Contributions/org.nuxeo.ecm.core.management.typesContrib--doctype",
              "id": "org.nuxeo.ecm.core.management.typesContrib--doctype",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "10.10-HF19",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <doctype extends=\"Folder\" name=\"ManagementRoot\">\n      <schema name=\"dublincore\"/>\n      <facet name=\"HiddenInNavigation\"/>\n    </doctype>\n\n    <doctype extends=\"Folder\" name=\"AdministrativeStatusContainer\">\n      <schema name=\"dublincore\"/>\n      <facet name=\"HiddenInNavigation\"/>\n    </doctype>\n\n    <doctype extends=\"Document\" name=\"AdministrativeStatus\">\n      <schema name=\"dublincore\"/>\n      <schema name=\"status\"/>\n      <facet name=\"HiddenInNavigation\"/>\n    </doctype>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.typesContrib",
          "name": "org.nuxeo.ecm.core.management.typesContrib",
          "requirements": [],
          "resolutionOrder": 143,
          "services": [],
          "startOrder": 139,
          "version": "10.10-HF19",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.management.typesContrib\">\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"schema\">\n    <schema name=\"status\" src=\"schemas/status.xsd\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"doctype\">\n\n    <doctype name=\"ManagementRoot\" extends=\"Folder\">\n      <schema name=\"dublincore\" />\n      <facet name=\"HiddenInNavigation\" />\n    </doctype>\n\n    <doctype name=\"AdministrativeStatusContainer\" extends=\"Folder\">\n      <schema name=\"dublincore\" />\n      <facet name=\"HiddenInNavigation\" />\n    </doctype>\n\n    <doctype name=\"AdministrativeStatus\" extends=\"Document\">\n      <schema name=\"dublincore\" />\n      <schema name=\"status\" />\n      <facet name=\"HiddenInNavigation\" />\n    </doctype>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/core-management-types-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.management.CoreManagementComponent--serviceDefinition",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.contribs/Contributions/org.nuxeo.ecm.core.management.contribs--serviceDefinition",
              "id": "org.nuxeo.ecm.core.management.contribs--serviceDefinition",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.management.CoreManagementComponent",
                "name": "org.nuxeo.ecm.core.management.CoreManagementComponent",
                "type": "service"
              },
              "version": "10.10-HF19",
              "xml": "<extension point=\"serviceDefinition\" target=\"org.nuxeo.ecm.core.management.CoreManagementComponent\">\n\n    <administrableService id=\"org.nuxeo.ecm.instance.availability\" name=\"nuxeoInstance\">\n      <label>Nuxeo Instance</label>\n      <description>\n        Indicates if the Nuxeo Instance is available or not.\n      </description>\n    </administrableService>\n\n    <administrableService id=\"org.nuxeo.ecm.administrator.message\" name=\"adminMessage\">\n      <label>Administrator message</label>\n      <description>\n        Displays a message from administrator on all pages\n      </description>\n      <initialState>passive</initialState>\n    </administrableService>\n\n    <administrableService id=\"org.nuxeo.ecm.smtp\" name=\"smtpService\">\n      <label>SMTP services</label>\n      <description>\n        Indicates if the Nuxeo instance can send e-mails\n      </description>\n    </administrableService>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.management.CoreManagementComponent--probes",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.contribs/Contributions/org.nuxeo.ecm.core.management.contribs--probes",
              "id": "org.nuxeo.ecm.core.management.contribs--probes",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.management.CoreManagementComponent",
                "name": "org.nuxeo.ecm.core.management.CoreManagementComponent",
                "type": "service"
              },
              "version": "10.10-HF19",
              "xml": "<extension point=\"probes\" target=\"org.nuxeo.ecm.core.management.CoreManagementComponent\">\n\n    <probe class=\"org.nuxeo.ecm.core.management.probes.AdministrativeStatusProbe\" name=\"administrativeStatus\">\n      <label>Local Instance availability</label>\n      <description>Test if local Nuxeo Instance is available</description>\n    </probe>\n    \n    <probe class=\"org.nuxeo.ecm.core.management.statuses.RuntimeStartedProbe\" name=\"runtimeStatus\">\n      <label>Runtime started probe</label>\n      <description>Test if the runtime is started or not</description>\n    </probe>\n    \n    <probe class=\"org.nuxeo.ecm.core.management.statuses.RepositoryStatusProbe\" name=\"repositoryStatus\">\n      <label>Repository started probe</label>\n      <description>Test the repository by fetching the root document</description>\n    </probe>\n    \n    <probe class=\"org.nuxeo.ecm.core.management.probes.StreamProbe\" name=\"streamStatus\">\n      <label>Stream probe</label>\n      <description>Test the Stream processor</description>\n    </probe>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.management.CoreManagementComponent--healthCheck",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.contribs/Contributions/org.nuxeo.ecm.core.management.contribs--healthCheck",
              "id": "org.nuxeo.ecm.core.management.contribs--healthCheck",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.management.CoreManagementComponent",
                "name": "org.nuxeo.ecm.core.management.CoreManagementComponent",
                "type": "service"
              },
              "version": "10.10-HF19",
              "xml": "<extension point=\"healthCheck\" target=\"org.nuxeo.ecm.core.management.CoreManagementComponent\">\n     <probe enabled=\"true\" name=\"runtimeStatus\"/>\n     <probe enabled=\"true\" name=\"repositoryStatus\"/>\n     <probe enabled=\"true\" name=\"streamStatus\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.contribs",
          "name": "org.nuxeo.ecm.core.management.contribs",
          "requirements": [],
          "resolutionOrder": 144,
          "services": [],
          "startOrder": 136,
          "version": "10.10-HF19",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.management.contribs\">\n\n  <extension target=\"org.nuxeo.ecm.core.management.CoreManagementComponent\"\n    point=\"serviceDefinition\">\n\n    <administrableService id=\"org.nuxeo.ecm.instance.availability\"\n      name=\"nuxeoInstance\">\n      <label>Nuxeo Instance</label>\n      <description>\n        Indicates if the Nuxeo Instance is available or not.\n      </description>\n    </administrableService>\n\n    <administrableService id=\"org.nuxeo.ecm.administrator.message\"\n      name=\"adminMessage\">\n      <label>Administrator message</label>\n      <description>\n        Displays a message from administrator on all pages\n      </description>\n      <initialState>passive</initialState>\n    </administrableService>\n\n    <administrableService id=\"org.nuxeo.ecm.smtp\" name=\"smtpService\">\n      <label>SMTP services</label>\n      <description>\n        Indicates if the Nuxeo instance can send e-mails\n      </description>\n    </administrableService>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.management.CoreManagementComponent\"\n    point=\"probes\">\n\n    <probe name=\"administrativeStatus\"\n      class=\"org.nuxeo.ecm.core.management.probes.AdministrativeStatusProbe\">\n      <label>Local Instance availability</label>\n      <description>Test if local Nuxeo Instance is available</description>\n    </probe>\n    \n    <probe name=\"runtimeStatus\"\n      class=\"org.nuxeo.ecm.core.management.statuses.RuntimeStartedProbe\">\n      <label>Runtime started probe</label>\n      <description>Test if the runtime is started or not</description>\n    </probe>\n    \n    <probe name=\"repositoryStatus\"\n      class=\"org.nuxeo.ecm.core.management.statuses.RepositoryStatusProbe\">\n      <label>Repository started probe</label>\n      <description>Test the repository by fetching the root document</description>\n    </probe>\n    \n    <probe name=\"streamStatus\" class=\"org.nuxeo.ecm.core.management.probes.StreamProbe\">\n      <label>Stream probe</label>\n      <description>Test the Stream processor</description>\n    </probe>\n\n  </extension>\n  \n   <extension target=\"org.nuxeo.ecm.core.management.CoreManagementComponent\" point=\"healthCheck\">\n     <probe name=\"runtimeStatus\" enabled=\"true\"/>\n     <probe name=\"repositoryStatus\" enabled=\"true\"/>\n     <probe name=\"streamStatus\" enabled=\"${nuxeo.stream.health.check.enabled:=true}\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/core-management-contribs.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.listener/Contributions/org.nuxeo.ecm.core.management.listener--listener",
              "id": "org.nuxeo.ecm.core.management.listener--listener",
              "registrationOrder": 11,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "10.10-HF19",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <listener async=\"false\" class=\"org.nuxeo.ecm.core.management.events.EventCounterListener\" name=\"CounterListener\" postCommit=\"true\" priority=\"1000\">\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.listener",
          "name": "org.nuxeo.ecm.core.management.listener",
          "requirements": [],
          "resolutionOrder": 145,
          "services": [],
          "startOrder": 137,
          "version": "10.10-HF19",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.management.listener\">\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n    <listener name=\"CounterListener\" async=\"false\"\n      postCommit=\"true\" priority=\"1000\"\n      class=\"org.nuxeo.ecm.core.management.events.EventCounterListener\">\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/listener-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.management.ResourcePublisher--factories",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.runtime.management.contribs/Contributions/org.nuxeo.ecm.core.management.runtime.management.contribs--factories",
              "id": "org.nuxeo.ecm.core.management.runtime.management.contribs--factories",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.management.ResourcePublisher",
                "name": "org.nuxeo.runtime.management.ResourcePublisher",
                "type": "service"
              },
              "version": "10.10-HF19",
              "xml": "<extension point=\"factories\" target=\"org.nuxeo.runtime.management.ResourcePublisher\">\n    <factory class=\"org.nuxeo.ecm.core.management.StatusesManagementFactory\" name=\"managementStatusesFactory\"/>\n    <factory class=\"org.nuxeo.ecm.core.management.events.EventMonitoringFactory\" name=\"EventMonitoring\"/>\n     <factory class=\"org.nuxeo.ecm.core.management.works.WorksMonitoringFactory\" name=\"WorkMonitoring\"/>       \n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.runtime.management.contribs",
          "name": "org.nuxeo.ecm.core.management.runtime.management.contribs",
          "requirements": [],
          "resolutionOrder": 146,
          "services": [],
          "startOrder": 138,
          "version": "10.10-HF19",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.management.runtime.management.contribs\">\n\n  <extension target=\"org.nuxeo.runtime.management.ResourcePublisher\"\n    point=\"factories\">\n    <factory name=\"managementStatusesFactory\"\n      class=\"org.nuxeo.ecm.core.management.StatusesManagementFactory\" />\n    <factory name=\"EventMonitoring\"\n      class=\"org.nuxeo.ecm.core.management.events.EventMonitoringFactory\" />\n     <factory name=\"WorkMonitoring\"\n      class=\"org.nuxeo.ecm.core.management.works.WorksMonitoringFactory\" />       \n  </extension>\n\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/runtime-management-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.management.CoreManagementComponent",
          "documentationHtml": "",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.management.CoreManagementComponent",
              "descriptors": [
                "org.nuxeo.ecm.core.management.probes.ProbeDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.CoreManagementComponent/ExtensionPoints/org.nuxeo.ecm.core.management.CoreManagementComponent--probes",
              "id": "org.nuxeo.ecm.core.management.CoreManagementComponent--probes",
              "label": "probes (org.nuxeo.ecm.core.management.CoreManagementComponent)",
              "name": "probes",
              "version": "10.10-HF19"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.management.CoreManagementComponent",
              "descriptors": [
                "org.nuxeo.ecm.core.management.statuses.AdministrableServiceDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.CoreManagementComponent/ExtensionPoints/org.nuxeo.ecm.core.management.CoreManagementComponent--serviceDefinition",
              "id": "org.nuxeo.ecm.core.management.CoreManagementComponent--serviceDefinition",
              "label": "serviceDefinition (org.nuxeo.ecm.core.management.CoreManagementComponent)",
              "name": "serviceDefinition",
              "version": "10.10-HF19"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.management.CoreManagementComponent",
              "descriptors": [
                "org.nuxeo.ecm.core.management.storage.DocumentStoreConfigurationDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.CoreManagementComponent/ExtensionPoints/org.nuxeo.ecm.core.management.CoreManagementComponent--storageConfiguration",
              "id": "org.nuxeo.ecm.core.management.CoreManagementComponent--storageConfiguration",
              "label": "storageConfiguration (org.nuxeo.ecm.core.management.CoreManagementComponent)",
              "name": "storageConfiguration",
              "version": "10.10-HF19"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.management.CoreManagementComponent",
              "descriptors": [
                "org.nuxeo.ecm.core.management.storage.DocumentStoreHandlerDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.CoreManagementComponent/ExtensionPoints/org.nuxeo.ecm.core.management.CoreManagementComponent--storageHandlers",
              "id": "org.nuxeo.ecm.core.management.CoreManagementComponent--storageHandlers",
              "label": "storageHandlers (org.nuxeo.ecm.core.management.CoreManagementComponent)",
              "name": "storageHandlers",
              "version": "10.10-HF19"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.management.CoreManagementComponent",
              "descriptors": [
                "org.nuxeo.ecm.core.management.probes.HealthCheckProbesDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.CoreManagementComponent/ExtensionPoints/org.nuxeo.ecm.core.management.CoreManagementComponent--healthCheck",
              "id": "org.nuxeo.ecm.core.management.CoreManagementComponent--healthCheck",
              "label": "healthCheck (org.nuxeo.ecm.core.management.CoreManagementComponent)",
              "name": "healthCheck",
              "version": "10.10-HF19"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.CoreManagementComponent",
          "name": "org.nuxeo.ecm.core.management.CoreManagementComponent",
          "requirements": [
            "org.nuxeo.ecm.core.repository.RepositoryService"
          ],
          "resolutionOrder": 816,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.management.CoreManagementComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.CoreManagementComponent/Services/org.nuxeo.ecm.core.management.api.ProbeManager",
              "id": "org.nuxeo.ecm.core.management.api.ProbeManager",
              "overriden": false,
              "version": "10.10-HF19"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.management.CoreManagementComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.CoreManagementComponent/Services/org.nuxeo.ecm.core.management.api.GlobalAdministrativeStatusManager",
              "id": "org.nuxeo.ecm.core.management.api.GlobalAdministrativeStatusManager",
              "overriden": false,
              "version": "10.10-HF19"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.management.CoreManagementComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.CoreManagementComponent/Services/org.nuxeo.ecm.core.management.api.AdministrativeStatusManager",
              "id": "org.nuxeo.ecm.core.management.api.AdministrativeStatusManager",
              "overriden": false,
              "version": "10.10-HF19"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.management.CoreManagementComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management.CoreManagementComponent/Services/org.nuxeo.ecm.core.event.EventStats",
              "id": "org.nuxeo.ecm.core.event.EventStats",
              "overriden": false,
              "version": "10.10-HF19"
            }
          ],
          "startOrder": 852,
          "version": "10.10-HF19",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.management.CoreManagementComponent\">\n\n  <implementation class=\"org.nuxeo.ecm.core.management.CoreManagementComponent\" />\n\n  <require>org.nuxeo.ecm.core.repository.RepositoryService</require>\n  <!-- TODO: Cannot use this ince content template is not in the core .. find another solution.\n  <require>org.nuxeo.ecm.platform.content.template.service.ContentTemplateService</require>\n  -->\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.management.api.ProbeManager\" />\n    <provide\n      interface=\"org.nuxeo.ecm.core.management.api.GlobalAdministrativeStatusManager\" />\n    <provide\n      interface=\"org.nuxeo.ecm.core.management.api.AdministrativeStatusManager\" />\n    <provide\n      interface=\"org.nuxeo.ecm.core.event.EventStats\" />\n  </service>\n\n  <extension-point name=\"probes\">\n    <object class=\"org.nuxeo.ecm.core.management.probes.ProbeDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"serviceDefinition\">\n    <object\n      class=\"org.nuxeo.ecm.core.management.statuses.AdministrableServiceDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"storageConfiguration\">\n    <object\n      class=\"org.nuxeo.ecm.core.management.storage.DocumentStoreConfigurationDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"storageHandlers\">\n    <object\n      class=\"org.nuxeo.ecm.core.management.storage.DocumentStoreHandlerDescriptor\" />\n  </extension-point>\n  \n  <extension-point name=\"healthCheck\">\n    <!-- @since 9.3, list of probes to be evaluated for the healthCheck -->\n    <object class=\"org.nuxeo.ecm.core.management.probes.HealthCheckProbesDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/core-management-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.management.standby.StandbyComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.managemment.standby",
          "name": "org.nuxeo.ecm.core.managemment.standby",
          "requirements": [
            "org.nuxeo.runtime.management.ResourcePublisher",
            "org.nuxeo.runtime.metrics.MetricsService",
            "org.nuxeo.runtime.EventService"
          ],
          "resolutionOrder": 834,
          "services": [],
          "startOrder": 853,
          "version": "10.10-HF19",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.managemment.standby\">\n\n  <require>org.nuxeo.runtime.EventService</require>\n  <require>org.nuxeo.runtime.management.ResourcePublisher</require>\n  <require>org.nuxeo.runtime.metrics.MetricsService</require>\n\n  <implementation class=\"org.nuxeo.ecm.core.management.standby.StandbyComponent\" />\n\n</component>\n\n",
          "xmlFileName": "/OSGI-INF/standby.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-core-management-10.10-HF19.jar",
      "groupId": "org.nuxeo.ecm.core",
      "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.management/org.nuxeo.ecm.core.management",
      "id": "org.nuxeo.ecm.core.management",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_222\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 5.4.2.qualifier\r\nExport-Package: org.nuxeo.ecm.core.management,org.nuxeo.ecm.core.manag\r\n ement.api,org.nuxeo.ecm.core.management.guards,org.nuxeo.ecm.core.man\r\n agement.probes,org.nuxeo.ecm.core.management.statuses,org.nuxeo.ecm.c\r\n ore.management.storage\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Name: nuxeo core management\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nBundle-Vendor: Nuxeo\r\nEclipse-BuddyPolicy: dependent\r\nNuxeo-Component: OSGI-INF/core-management-types-contrib.xml,OSGI-INF/c\r\n ore-management-framework.xml,OSGI-INF/core-management-contribs.xml,OS\r\n GI-INF/listener-contrib.xml,OSGI-INF/runtime-management-contrib.xml,O\r\n SGI-INF/standby.xml\r\nImport-Package: javax.annotation,javax.servlet.http;resolution:=option\r\n al,org.apache.commons.lang,org.apache.commons.logging,org.nuxeo.commo\r\n n.xmap.annotation,org.nuxeo.ecm.core,org.nuxeo.ecm.core.api;api=split\r\n ,org.nuxeo.ecm.core.api.repository,org.nuxeo.ecm.core.api.security,or\r\n g.nuxeo.ecm.core.event,org.nuxeo.ecm.core.event.impl,org.nuxeo.ecm.co\r\n re.model,org.nuxeo.ecm.core.repository,org.nuxeo.runtime,org.nuxeo.ru\r\n ntime.api,org.nuxeo.runtime.management,org.nuxeo.runtime.model,org.nu\r\n xeo.runtime.services.event,org.osgi.framework\r\nBundle-SymbolicName: org.nuxeo.ecm.core.management;singleton:=true\r\nRequire-Bundle: org.nuxeo.ecm.core;bundle-version=\"0.0.0\"\r\n\r\n",
      "maxResolutionOrder": 834,
      "minResolutionOrder": 143,
      "packages": [
        "nuxeo-10.10-HF09",
        "nuxeo-10.10-HF15",
        "nuxeo-10.10-HF19"
      ],
      "requirements": [
        "org.nuxeo.ecm.core"
      ],
      "version": "10.10-HF19"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-web-ui",
      "artifactVersion": "10.10-HF33",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.web.ui",
          "org.nuxeo.web.ui.drive",
          "org.nuxeo.web.ui.easyshare"
        ],
        "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web",
        "id": "grp:org.nuxeo.web",
        "name": "org.nuxeo.web",
        "parentIds": [
          "grp:org.nuxeo.web.ui"
        ],
        "readmes": [
          {
            "blobProviderId": "default",
            "content": "# Nuxeo Drive Server\n\nAddon needed for [Nuxeo Drive](https://github.com/nuxeo/nuxeo-drive) to work against a Nuxeo Platform instance.\n\n# Building\n\n    mvn clean install\n\n## Deploying\n\nInstall [the Nuxeo Drive Marketplace Package](https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-drive).\nOr manually copy the built artifacts into `$NUXEO_HOME/templates/custom/bundles/` and activate the \"custom\" template.\n\nYou should then have the 'Nuxeo Drive' tab in your Home allowing you to download the Nuxeo Drive client for your favorite OS :-)\n\n## QA results\n\n| Nuxeo QA Job | Status |\n|-----|--------|\n| Build Status | [![Build Status](https://qa.nuxeo.org/jenkins/job/master/job/addons_nuxeo-drive-server-master/badge/icon)](https://qa.nuxeo.org/jenkins/job/master/job/addons_nuxeo-drive-server-master/) |\n| Build Multi-DB | [![Build Multi-DB](https://qa.nuxeo.org/jenkins/job/master/job/addons_nuxeo-drive-server-master-multidb/badge/icon)](https://qa.nuxeo.org/jenkins/job/master/job/addons_nuxeo-drive-server-master-multidb) |\n\n# About Nuxeo\n\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
            "digest": "dd6f47d8da7a0fa3605f1935a942caf4",
            "encoding": "UTF-8",
            "length": 1712,
            "mimeType": "text/plain",
            "name": "README.md"
          },
          {
            "blobProviderId": "default",
            "content": "\n#EasyShare\n\n## About EasyShare\nThe EasyShare package is an addon for the Nuxeo platform to enable sharing files from the repository with external users not requiring a login. You can specify a set of files to be accessed by a specific unique URL which allows anonymous download of either files within the share or proxies from anywhere else in your repository through a special folder listing page. You can also set an expiration date for sharing availability and track all downloads and get notifications.\n\nThis project is an on-going project, supported by Nuxeo\n\n## Deploying\nEasyShare is available as a package add-on [from the Nuxeo Marketplace] https://connect.nuxeo.com/nuxeo/site/marketplace/package/easyshare\n\n## Resources\n### Documentation\nThe documentation for EasyShare is available in our Documentation Center: http://doc.nuxeo.com/x/rooZAQ\n\n### Following Project QA Status\n\n[![Build Status](https://qa.nuxeo.org/jenkins/buildStatus/icon?job=addons_nuxeo-easyshare-master)](https://qa.nuxeo.org/jenkins/job/addons_nuxeo-easyshare-master/)\n\n### Reporting Issues\nYou can follow the developments in the Nuxeo Platform project of our JIRA bug tracker, which includes an EasyShare component:\nhttps://jira.nuxeo.com/browse/NXP/component/14003\n\nYou can report issues on: http://answers.nuxeo.com\n\n## About Nuxeo\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Netflix, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
            "digest": "8348c059f1deecffbe4b8bc0ce482018",
            "encoding": "UTF-8",
            "length": 1986,
            "mimeType": "text/plain",
            "name": "README.md"
          }
        ],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.web.ui",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--startURL",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.authentication.contrib/Contributions/org.nuxeo.web.ui.authentication.contrib--startURL",
              "id": "org.nuxeo.web.ui.authentication.contrib--startURL",
              "registrationOrder": 13,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"startURL\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n    <startURLPattern>\n      <patterns>\n        <pattern>ui</pattern>\n        <pattern>repo</pattern>\n      </patterns>\n    </startURLPattern>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.authentication.contrib",
          "name": "org.nuxeo.web.ui.authentication.contrib",
          "requirements": [],
          "resolutionOrder": 951,
          "services": [],
          "startOrder": 797,
          "version": "10.10-HF33",
          "xmlFileContent": "<component name=\"org.nuxeo.web.ui.authentication.contrib\">\n  <extension point=\"startURL\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n    <startURLPattern>\n      <patterns>\n        <pattern>ui</pattern>\n        <pattern>repo</pattern>\n      </patterns>\n    </startURLPattern>\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/auth-config.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.actions/Contributions/org.nuxeo.web.ui.actions--actions",
              "id": "org.nuxeo.web.ui.actions--actions",
              "registrationOrder": 73,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <action id=\"webui\" label=\"WEBUI\" link=\"ui\" order=\"90\" type=\"bare_link\">\n      <category>MAIN_TABS</category>\n    </action>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.actions",
          "name": "org.nuxeo.web.ui.actions",
          "requirements": [],
          "resolutionOrder": 952,
          "services": [],
          "startOrder": 796,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.web.ui.actions\">\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"actions\">\n\n    <action id=\"webui\" link=\"ui\" label=\"WEBUI\" order=\"90\" type=\"bare_link\">\n      <category>MAIN_TABS</category>\n    </action>\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/actions-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--loginScreen",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.login.startup.page.web.contrib/Contributions/org.nuxeo.login.startup.page.web.contrib--loginScreen",
              "id": "org.nuxeo.login.startup.page.web.contrib--loginScreen",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"loginScreen\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n    <loginScreenConfig>\n      <startupPages>\n        <startupPage id=\"web\" priority=\"100\">\n          <path>ui/</path>\n        </startupPage>\n      </startupPages>\n    </loginScreenConfig>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.login.startup.page.web.contrib",
          "name": "org.nuxeo.login.startup.page.web.contrib",
          "requirements": [],
          "resolutionOrder": 953,
          "services": [],
          "startOrder": 724,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.login.startup.page.web.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\" point=\"loginScreen\">\n    <loginScreenConfig>\n      <startupPages>\n        <startupPage id=\"web\" priority=\"100\">\n          <path>ui/</path>\n        </startupPage>\n      </startupPages>\n    </loginScreenConfig>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/login-startup-page-web-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.WebResources--resources",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.resources/Contributions/org.nuxeo.web.ui.resources--resources",
              "id": "org.nuxeo.web.ui.resources--resources",
              "registrationOrder": 23,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.WebResources",
                "name": "org.nuxeo.ecm.platform.WebResources",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"resources\" target=\"org.nuxeo.ecm.platform.WebResources\">\n\n    <resource name=\"nuxeo-app.html\" type=\"import\">\n      <uri>/ui/nuxeo-app.html</uri>\n    </resource>\n\n    <resource name=\"nuxeo-web-ui-bundle.html\" type=\"import\">\n      <uri>/ui/nuxeo-web-ui-bundle.html</uri>\n    </resource>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.WebResources--bundles",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.resources/Contributions/org.nuxeo.web.ui.resources--bundles",
              "id": "org.nuxeo.web.ui.resources--bundles",
              "registrationOrder": 16,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.WebResources",
                "name": "org.nuxeo.ecm.platform.WebResources",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"bundles\" target=\"org.nuxeo.ecm.platform.WebResources\">\n\n    <!-- main bundle with all import resources -->\n    <bundle name=\"web-ui\">\n      <resources>\n        <resource>nuxeo-app.html</resource>\n        <resource>nuxeo-web-ui-bundle.html</resource>\n      </resources>\n    </bundle>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.resources",
          "name": "org.nuxeo.web.ui.resources",
          "requirements": [],
          "resolutionOrder": 954,
          "services": [],
          "startOrder": 800,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<component name=\"org.nuxeo.web.ui.resources\">\n\n  <extension target=\"org.nuxeo.ecm.platform.WebResources\" point=\"resources\">\n\n    <resource name=\"nuxeo-app.html\" type=\"import\">\n      <uri>/ui/nuxeo-app.html</uri>\n    </resource>\n\n    <resource name=\"nuxeo-web-ui-bundle.html\" type=\"import\">\n      <uri>/ui/nuxeo-web-ui-bundle.html</uri>\n    </resource>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.WebResources\" point=\"bundles\">\n\n    <!-- main bundle with all import resources -->\n    <bundle name=\"web-ui\">\n      <resources>\n        <resource>nuxeo-app.html</resource>\n        <resource>nuxeo-web-ui-bundle.html</resource>\n      </resources>\n    </bundle>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/webresources-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.url.service.DocumentViewCodecService--codecs",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.url.codec.web.contribs/Contributions/org.nuxeo.url.codec.web.contribs--codecs",
              "id": "org.nuxeo.url.codec.web.contribs--codecs",
              "registrationOrder": 12,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.url.service.DocumentViewCodecService",
                "name": "org.nuxeo.ecm.platform.url.service.DocumentViewCodecService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"codecs\" target=\"org.nuxeo.ecm.platform.url.service.DocumentViewCodecService\">\n    <documentViewCodec class=\"org.nuxeo.web.ui.url.codec.WebNotificationDocumentIdCodec\" enabled=\"true\" name=\"notificationDocId\" prefix=\"doc\" priority=\"100\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.url.codec.web.contribs",
          "name": "org.nuxeo.url.codec.web.contribs",
          "requirements": [],
          "resolutionOrder": 967,
          "services": [],
          "startOrder": 789,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.url.codec.web.contribs\">\n\n  <extension target=\"org.nuxeo.ecm.platform.url.service.DocumentViewCodecService\" point=\"codecs\">\n    <documentViewCodec name=\"notificationDocId\" enabled=\"true\" prefix=\"doc\" priority=\"100\"\n      class=\"org.nuxeo.web.ui.url.codec.WebNotificationDocumentIdCodec\" />\n  </extension>\n\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/url-codecs-web-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService--filterConfig",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.request.contrib/Contributions/org.nuxeo.web.ui.request.contrib--filterConfig",
              "id": "org.nuxeo.web.ui.request.contrib--filterConfig",
              "registrationOrder": 5,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService",
                "name": "org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"filterConfig\" target=\"org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService\">\n    <filterConfig cacheTime=\"31536000\" cached=\"true\" name=\"cached_ui_static\">\n      <!-- if url contains a timestamp param: approximately one year -->\n      <pattern>/nuxeo/ui/.*\\\\?.*ts=.+</pattern>\n    </filterConfig>\n    <filterConfig cacheTime=\"86400\" cached=\"true\" name=\"ui_static\">\n      <!-- For other web ui resources: trade off between agressive caching and HF applying within 24 hours -->\n      <!-- Exclude JS and HTML files due to: https://jira.nuxeo.com/browse/NXP-25595 -->\n      <pattern>/nuxeo/ui/.*\\.(?!(html|js)$).*</pattern>\n    </filterConfig>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.request.contrib",
          "name": "org.nuxeo.web.ui.request.contrib",
          "requirements": [
            "org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService.defaultContrib"
          ],
          "resolutionOrder": 968,
          "services": [],
          "startOrder": 799,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.web.ui.request.contrib\">\n\n  <require>org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService.defaultContrib</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService\"\n    point=\"filterConfig\">\n    <filterConfig name=\"cached_ui_static\" cached=\"true\" cacheTime=\"31536000\">\n      <!-- if url contains a timestamp param: approximately one year -->\n      <pattern>${org.nuxeo.ecm.contextPath}/ui/.*\\\\?.*ts=.+</pattern>\n    </filterConfig>\n    <filterConfig name=\"ui_static\" cached=\"true\" cacheTime=\"86400\">\n      <!-- For other web ui resources: trade off between agressive caching and HF applying within 24 hours -->\n      <!-- Exclude JS and HTML files due to: https://jira.nuxeo.com/browse/NXP-25595 -->\n      <pattern>${org.nuxeo.ecm.contextPath}/ui/.*\\.(?!(html|js)$).*</pattern>\n    </filterConfig>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/browser-cache-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.properties.contrib/Contributions/org.nuxeo.web.ui.properties.contrib--configuration",
              "id": "org.nuxeo.web.ui.properties.contrib--configuration",
              "registrationOrder": 55,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <!-- enrichers -->\n    <property list=\"true\" name=\"org.nuxeo.web.ui.enrichers.document\">hasContent</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">firstAccessibleAncestor</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">permissions</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">breadcrumb</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">preview</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">favorites</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">subscribedNotifications</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">thumbnail</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">renditions</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">pendingTasks</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">runnableWorkflows</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">runningWorkflows</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">collections</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">audit</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">subtypes</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">tags</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">publications</property>\n    <property list=\"true\" name=\"org.nuxeo.web.ui.enrichers.blob\">appLinks</property>\n\n    <!-- Properties to be fetched when loading current document, default is 'properties' meaning all -->\n    <property list=\"true\" name=\"org.nuxeo.web.ui.fetch.document\">properties</property>\n\n    <!-- Date (time) format -->\n    <property name=\"org.nuxeo.web.ui.dateFormat\">LL</property>\n    <property name=\"org.nuxeo.web.ui.dateTimeFormat\">LLL</property>\n\n    <!-- First Day Of Week -->\n    <property name=\"org.nuxeo.web.ui.firstDayOfWeek\"/>\n\n    <!-- Comments only on doc with 'Commentable' facet ? -->\n    <property name=\"org.nuxeo.web.ui.enforceCommentable\">false</property>\n\n    <!-- Is pagination on for tasks endpoint ? -->\n    <property name=\"org.nuxeo.web.ui.taskEndpoint.isPaginated\">false</property>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.properties.contrib",
          "name": "org.nuxeo.web.ui.properties.contrib",
          "requirements": [],
          "resolutionOrder": 969,
          "services": [],
          "startOrder": 798,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.web.ui.properties.contrib\">\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <!-- enrichers -->\n    <property name=\"org.nuxeo.web.ui.enrichers.document\" list=\"true\">hasContent</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">firstAccessibleAncestor</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">permissions</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">breadcrumb</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">preview</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">favorites</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">subscribedNotifications</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">thumbnail</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">renditions</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">pendingTasks</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">runnableWorkflows</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">runningWorkflows</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">collections</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">audit</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">subtypes</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">tags</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">publications</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.blob\" list=\"true\">appLinks</property>\n\n    <!-- Properties to be fetched when loading current document, default is 'properties' meaning all -->\n    <property name=\"org.nuxeo.web.ui.fetch.document\" list=\"true\">properties</property>\n\n    <!-- Date (time) format -->\n    <property name=\"org.nuxeo.web.ui.dateFormat\">LL</property>\n    <property name=\"org.nuxeo.web.ui.dateTimeFormat\">LLL</property>\n\n    <!-- First Day Of Week -->\n    <property name=\"org.nuxeo.web.ui.firstDayOfWeek\"></property>\n\n    <!-- Comments only on doc with 'Commentable' facet ? -->\n    <property name=\"org.nuxeo.web.ui.enforceCommentable\">false</property>\n\n    <!-- Is pagination on for tasks endpoint ? -->\n    <property name=\"org.nuxeo.web.ui.taskEndpoint.isPaginated\">false</property>\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/web-ui-properties.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-web-ui-10.10-HF33.jar",
      "groupId": "org.nuxeo.web.ui",
      "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui",
      "id": "org.nuxeo.web.ui",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_265\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 0.0.1\r\nBundle-Vendor: Nuxeo\r\nNuxeo-RequiredBy: org.nuxeo.ecm.war\r\nBundle-Name: Nuxeo Web UI\r\nBundle-SymbolicName: org.nuxeo.web.ui;singleton:=true\r\nNuxeo-Component: OSGI-INF/auth-config.xml, OSGI-INF/actions-contrib.xm\r\n l, OSGI-INF/login-startup-page-web-contrib.xml OSGI-INF/webresources-\r\n contrib.xml, OSGI-INF/url-codecs-web-contrib.xml, OSGI-INF/browser-ca\r\n che-contrib.xml, OSGI-INF/web-ui-properties.xml\r\n\r\n",
      "maxResolutionOrder": 969,
      "minResolutionOrder": 951,
      "packages": [
        "nuxeo-10.10-HF01",
        "nuxeo-10.10-HF02",
        "nuxeo-10.10-HF03",
        "nuxeo-10.10-HF04",
        "nuxeo-10.10-HF05",
        "nuxeo-10.10-HF06",
        "nuxeo-10.10-HF07",
        "nuxeo-10.10-HF08",
        "nuxeo-10.10-HF09",
        "nuxeo-10.10-HF10",
        "nuxeo-10.10-HF11",
        "nuxeo-10.10-HF12",
        "nuxeo-10.10-HF13",
        "nuxeo-10.10-HF13",
        "nuxeo-10.10-HF14",
        "nuxeo-10.10-HF15",
        "nuxeo-10.10-HF16",
        "nuxeo-10.10-HF17",
        "nuxeo-10.10-HF18",
        "nuxeo-10.10-HF19",
        "nuxeo-10.10-HF20",
        "nuxeo-10.10-HF21",
        "nuxeo-10.10-HF22",
        "nuxeo-10.10-HF23",
        "nuxeo-10.10-HF24",
        "nuxeo-10.10-HF25",
        "nuxeo-10.10-HF26",
        "nuxeo-10.10-HF27",
        "nuxeo-10.10-HF28",
        "nuxeo-10.10-HF29",
        "nuxeo-10.10-HF30",
        "nuxeo-10.10-HF31",
        "nuxeo-10.10-HF32",
        "nuxeo-10.10-HF33",
        "nuxeo-web-ui"
      ],
      "readme": {
        "blobProviderId": "default",
        "content": "[![Build Status](https://qa.nuxeo.org/jenkins/buildStatus/icon?job=master/addons_nuxeo-web-ui-master)](https://qa.nuxeo.org/jenkins/job/master/job/addons_nuxeo-web-ui-master/)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/5d8cd2a3c56745ecaae7e7f92a683ea7)](https://www.codacy.com/app/Nuxeo/nuxeo-web-ui)\n\n## Nuxeo Web UI\n\n### About\nNuxeo Web UI is a standard base web application for Nuxeo Platform. It is highly customizable and scalable, developed with [Polymer](https://polymer-library.polymer-project.org/) and leveraging [nuxeo-elements](https://github.com/nuxeo/nuxeo-elements), our library of custom elements.\n\n## Getting Started\n\n### Install dependencies\n\n```sh\nnpm install -g gulp bower && npm install && bower install\n```\n\n### Development workflow\n\n#### Serve / watch\n\n```sh\ngulp serve\n```\n\nThis outputs an IP address you can use to locally test and another that can be used on devices connected to your network.\n\n#### Run tests\n\n```sh\ngulp test:local\n```\n\nThis runs the unit tests defined in the `app/test` directory through [web-component-tester](https://github.com/Polymer/web-component-tester).\n\n#### Build & Vulcanize\n\n```sh\ngulp\n```\n\nBuild and optimize the current project, ready for deployment. This includes linting as well as vulcanization, image, script, stylesheet and HTML optimization and minification.\n\n## License\n\n[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) \n\n(C) Copyright Nuxeo Corp. (http://nuxeo.com/)\n\nAll images, icons, fonts, and videos contained in this folder are copyrighted by Nuxeo, all rights reserved.\n\n## About Nuxeo\n\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
        "digest": "a45facbc87a9bd4b47ad95007eb0aaaa",
        "encoding": "UTF-8",
        "length": 2266,
        "mimeType": "text/plain",
        "name": "README.md"
      },
      "requirements": [],
      "version": "10.10-HF33"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-core-bulk",
      "artifactVersion": "10.10-HF33",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.core",
          "org.nuxeo.ecm.core.api",
          "org.nuxeo.ecm.core.bulk",
          "org.nuxeo.ecm.core.cache",
          "org.nuxeo.ecm.core.event",
          "org.nuxeo.ecm.core.io",
          "org.nuxeo.ecm.core.mimetype",
          "org.nuxeo.ecm.core.mongodb",
          "org.nuxeo.ecm.core.persistence",
          "org.nuxeo.ecm.core.query",
          "org.nuxeo.ecm.core.redis",
          "org.nuxeo.ecm.core.schema",
          "org.nuxeo.ecm.platform.el"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.core",
        "id": "grp:org.nuxeo.ecm.core",
        "name": "org.nuxeo.ecm.core",
        "parentIds": [],
        "readmes": [],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.core.bulk",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.scroll.ScrollComponent",
          "documentation": "\n    The scroll service offers an unified API to scroll large result set.\n  \n",
          "documentationHtml": "<p>\nThe scroll service offers an unified API to scroll large result set.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.scroll.service",
              "descriptors": [
                "org.nuxeo.ecm.core.scroll.ScrollDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.scroll.service/ExtensionPoints/org.nuxeo.ecm.core.scroll.service--scroll",
              "id": "org.nuxeo.ecm.core.scroll.service--scroll",
              "label": "scroll (org.nuxeo.ecm.core.scroll.service)",
              "name": "scroll",
              "version": "10.10-HF33"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.scroll.service",
          "name": "org.nuxeo.ecm.core.scroll.service",
          "requirements": [],
          "resolutionOrder": 124,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.scroll.service",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.scroll.service/Services/org.nuxeo.ecm.core.api.scroll.ScrollService",
              "id": "org.nuxeo.ecm.core.api.scroll.ScrollService",
              "overriden": false,
              "version": "10.10-HF33"
            }
          ],
          "startOrder": 860,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.scroll.service\" version=\"1.0\">\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.api.scroll.ScrollService\" />\n  </service>\n\n  <implementation class=\"org.nuxeo.ecm.core.scroll.ScrollComponent\" />\n\n  <documentation>\n    The scroll service offers an unified API to scroll large result set.\n  </documentation>\n\n  <extension-point name=\"scroll\">\n    <object class=\"org.nuxeo.ecm.core.scroll.ScrollDescriptor\" />\n  </extension-point>\n\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/scroll-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.scroll.service--scroll",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.scroll.contrib.default/Contributions/org.nuxeo.ecm.core.scroll.contrib.default--scroll",
              "id": "org.nuxeo.ecm.core.scroll.contrib.default--scroll",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.scroll.service",
                "name": "org.nuxeo.ecm.core.scroll.service",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"scroll\" target=\"org.nuxeo.ecm.core.scroll.service\">\n    <scroll class=\"org.nuxeo.ecm.core.scroll.RepositoryScroll\" default=\"true\" name=\"repository\" type=\"document\"/>\n    <scroll class=\"org.nuxeo.ecm.core.scroll.StaticScroll\" name=\"list\" type=\"static\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.scroll.contrib.default",
          "name": "org.nuxeo.ecm.core.scroll.contrib.default",
          "requirements": [
            "org.nuxeo.ecm.core.scroll.service"
          ],
          "resolutionOrder": 125,
          "services": [],
          "startOrder": 150,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.scroll.contrib.default\" version=\"1.0\">\n  <require>org.nuxeo.ecm.core.scroll.service</require>\n  <extension point=\"scroll\" target=\"org.nuxeo.ecm.core.scroll.service\">\n    <scroll type=\"document\" name=\"repository\" default=\"true\" class=\"org.nuxeo.ecm.core.scroll.RepositoryScroll\" />\n    <scroll type=\"static\" name=\"list\" class=\"org.nuxeo.ecm.core.scroll.StaticScroll\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/scroll-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.bulk.BulkComponent",
          "documentation": "\n    The Bulk Service allows to execute a Bulk Command. This consists of two steps:\n    <ul>\n    <li>Creation of a document set by scrolling the database</li>\n    <li>Execution of a bulk on document set</li>\n</ul>\n",
          "documentationHtml": "<p>\nThe Bulk Service allows to execute a Bulk Command. This consists of two steps:\n</p><ul><li>Creation of a document set by scrolling the database</li><li>Execution of a bulk on document set</li></ul>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.bulk",
              "descriptors": [
                "org.nuxeo.ecm.core.bulk.BulkActionDescriptor"
              ],
              "documentation": "\n      Allows to define the bulk actions.\n\n      A bulk action is a stream processing composed of one or more computations.\n\n      A bulk action can be made available through http APIs, default is false.\n\n      The bucket size determines the number of document ids per record at the scroller level, default is 100.\n\n      The batch size determines the number of document ids handled per transactions at the computation level, default is 25.\n\n      <code>\n    <extension point=\"actions\" target=\"org.nuxeo.ecm.core.bulk\">\n        <action batchSize=\"25\" bucketSize=\"100\" name=\"internalAction\"/>\n        <action batchSize=\"25\" bucketSize=\"100\" httpEnabled=\"true\" name=\"publicAction\"/>\n    </extension>\n</code>\n",
              "documentationHtml": "<p>\nAllows to define the bulk actions.\n</p><p>\nA bulk action is a stream processing composed of one or more computations.\n</p><p>\nA bulk action can be made available through http APIs, default is false.\n</p><p>\nThe bucket size determines the number of document ids per record at the scroller level, default is 100.\n</p><p>\nThe batch size determines the number of document ids handled per transactions at the computation level, default is 25.\n</p><p>\n</p><pre><code>    &lt;extension point&#61;&#34;actions&#34; target&#61;&#34;org.nuxeo.ecm.core.bulk&#34;&gt;\n        &lt;action batchSize&#61;&#34;25&#34; bucketSize&#61;&#34;100&#34; name&#61;&#34;internalAction&#34;/&gt;\n        &lt;action batchSize&#61;&#34;25&#34; bucketSize&#61;&#34;100&#34; httpEnabled&#61;&#34;true&#34; name&#61;&#34;publicAction&#34;/&gt;\n    &lt;/extension&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk/ExtensionPoints/org.nuxeo.ecm.core.bulk--actions",
              "id": "org.nuxeo.ecm.core.bulk--actions",
              "label": "actions (org.nuxeo.ecm.core.bulk)",
              "name": "actions",
              "version": "10.10-HF33"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk",
          "name": "org.nuxeo.ecm.core.bulk",
          "requirements": [],
          "resolutionOrder": 126,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.bulk",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk/Services/org.nuxeo.ecm.core.bulk.BulkService",
              "id": "org.nuxeo.ecm.core.bulk.BulkService",
              "overriden": false,
              "version": "10.10-HF33"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.bulk",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk/Services/org.nuxeo.ecm.core.bulk.BulkAdminService",
              "id": "org.nuxeo.ecm.core.bulk.BulkAdminService",
              "overriden": false,
              "version": "10.10-HF33"
            }
          ],
          "startOrder": 846,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.bulk\" version=\"1.0.0\">\n\n  <documentation>\n    The Bulk Service allows to execute a Bulk Command. This consists of two steps:\n    <ul>\n      <li>Creation of a document set by scrolling the database</li>\n      <li>Execution of a bulk on document set</li>\n    </ul>\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.bulk.BulkComponent\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.bulk.BulkService\" />\n    <provide interface=\"org.nuxeo.ecm.core.bulk.BulkAdminService\" />\n  </service>\n\n  <extension-point name=\"actions\">\n    <documentation>\n      Allows to define the bulk actions.\n\n      A bulk action is a stream processing composed of one or more computations.\n\n      A bulk action can be made available through http APIs, default is false.\n\n      The bucket size determines the number of document ids per record at the scroller level, default is 100.\n\n      The batch size determines the number of document ids handled per transactions at the computation level, default is 25.\n\n      <code>\n        <extension target=\"org.nuxeo.ecm.core.bulk\" point=\"actions\">\n          <action name=\"internalAction\" bucketSize=\"100\" batchSize=\"25\" />\n          <action name=\"publicAction\" bucketSize=\"100\" batchSize=\"25\" httpEnabled=\"true\" />\n        </extension>\n      </code>\n    </documentation>\n    <object class=\"org.nuxeo.ecm.core.bulk.BulkActionDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/bulk-component.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.io/Contributions/org.nuxeo.ecm.core.bulk.io--marshallers",
              "id": "org.nuxeo.ecm.core.bulk.io--marshallers",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkStatusJsonReader\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkStatusJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkCommandJsonReader\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkCommandJsonWriter\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.io",
          "name": "org.nuxeo.ecm.core.bulk.io",
          "requirements": [],
          "resolutionOrder": 127,
          "services": [],
          "startOrder": 124,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.bulk.io\" version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" point=\"marshallers\">\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkStatusJsonReader\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkStatusJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkCommandJsonReader\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkCommandJsonWriter\" enable=\"true\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/bulk-io-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--logConfig",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.config/Contributions/org.nuxeo.ecm.core.bulk.config--logConfig",
              "id": "org.nuxeo.ecm.core.bulk.config--logConfig",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"logConfig\" target=\"org.nuxeo.runtime.stream.service\">\n    <logConfig name=\"bulk\">\n      <!-- command stream size sets the maximum concurrency for the scroller computation in the Nuxeo cluster -->\n      <log name=\"command\" size=\"2\"/>\n      <!-- status stream size sets the maximum concurrency for the status computation in the Nuxeo cluster -->\n      <log name=\"status\" size=\"1\"/>\n      <!-- done stream size sets the maximum concurrency for the triggers computations -->\n      <log name=\"done\" size=\"1\"/>\n    </logConfig>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.config/Contributions/org.nuxeo.ecm.core.bulk.config--configuration",
              "id": "org.nuxeo.ecm.core.bulk.config--configuration",
              "registrationOrder": 52,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <!-- Scroll computation -->\n    <property name=\"nuxeo.core.bulk.scroller.continueOnFailure\">false</property>\n    <property name=\"nuxeo.core.bulk.scroller.concurrency\">2</property>\n    <property name=\"nuxeo.core.bulk.scroller.scroll.size\">200</property>\n    <property name=\"nuxeo.core.bulk.scroller.scroll.keepAliveSeconds\">60</property>\n    <property name=\"nuxeo.core.bulk.scroller.produceImmediate\">false</property>\n    <!-- Status computation -->\n    <property name=\"nuxeo.core.bulk.status.continueOnFailure\">false</property>\n    <property name=\"nuxeo.core.bulk.status.maxRetries\">3</property>\n    <property name=\"nuxeo.core.bulk.status.delayMillis\">1000</property>\n    <property name=\"nuxeo.core.bulk.status.maxDelayMillis\">10000</property>\n    <property name=\"nuxeo.core.bulk.status.concurrency\">1</property>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.bulk--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.config/Contributions/org.nuxeo.ecm.core.bulk.config--actions",
              "id": "org.nuxeo.ecm.core.bulk.config--actions",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.bulk",
                "name": "org.nuxeo.ecm.core.bulk",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.core.bulk\">\n    <!-- Internal -->\n    <action batchSize=\"25\" bucketSize=\"100\" name=\"trash\" sequentialCommands=\"true\"/>\n    <action batchSize=\"25\" bucketSize=\"100\" name=\"removeProxy\"/>\n    <action batchSize=\"25\" bucketSize=\"100\" name=\"setSystemProperties\"/>\n    <!-- Exposed through REST API -->\n    <action batchSize=\"25\" bucketSize=\"100\" httpEnabled=\"true\" name=\"setProperties\" validationClass=\"org.nuxeo.ecm.core.bulk.validation.SetPropertiesValidation\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--streamProcessor",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.config/Contributions/org.nuxeo.ecm.core.bulk.config--streamProcessor",
              "id": "org.nuxeo.ecm.core.bulk.config--streamProcessor",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"streamProcessor\" target=\"org.nuxeo.runtime.stream.service\">\n    <!-- SetProperty processor -->\n    <streamProcessor class=\"org.nuxeo.ecm.core.bulk.action.SetPropertiesAction\" defaultConcurrency=\"2\" defaultPartitions=\"2\" logConfig=\"bulk\" name=\"setProperties\">\n      <policy continueOnFailure=\"false\" delay=\"500ms\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n\n    <!-- SetSystemProperty processor -->\n    <streamProcessor class=\"org.nuxeo.ecm.core.bulk.action.SetSystemPropertiesAction\" defaultConcurrency=\"2\" defaultPartitions=\"2\" logConfig=\"bulk\" name=\"setSystemProperties\">\n      <policy continueOnFailure=\"false\" delay=\"500ms\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n\n    <!-- RemoveProxy processor -->\n    <streamProcessor class=\"org.nuxeo.ecm.core.bulk.action.RemoveProxyAction\" defaultConcurrency=\"2\" defaultPartitions=\"2\" logConfig=\"bulk\" name=\"removeProxy\">\n      <policy continueOnFailure=\"false\" delay=\"500ms\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n\n    <!-- Trash processor -->\n    <streamProcessor class=\"org.nuxeo.ecm.core.bulk.action.TrashAction\" defaultConcurrency=\"1\" defaultPartitions=\"1\" logConfig=\"bulk\" name=\"trash\">\n      <policy continueOnFailure=\"false\" delay=\"500ms\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.config",
          "name": "org.nuxeo.ecm.core.bulk.config",
          "requirements": [
            "org.nuxeo.runtime.stream.service"
          ],
          "resolutionOrder": 849,
          "services": [],
          "startOrder": 123,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.bulk.config\" version=\"1.0.0\">\n\n  <require>org.nuxeo.runtime.stream.service</require>\n\n  <!-- ======================================================================================= -->\n  <!-- Bulk Service configuration -->\n\n  <!-- Initialize bulk service streams before action processors -->\n  <extension point=\"logConfig\" target=\"org.nuxeo.runtime.stream.service\">\n    <logConfig name=\"bulk\">\n      <!-- command stream size sets the maximum concurrency for the scroller computation in the Nuxeo cluster -->\n      <log name=\"command\" size=\"2\" />\n      <!-- status stream size sets the maximum concurrency for the status computation in the Nuxeo cluster -->\n      <log name=\"status\" size=\"1\" />\n      <!-- done stream size sets the maximum concurrency for the triggers computations -->\n      <log name=\"done\" size=\"1\" />\n    </logConfig>\n  </extension>\n\n  <!-- Configure the bulk service processor for this instance, we are using the configuration service -->\n  <!-- because the bulk processor is initialized manually after the Stream service has started the action processors -->\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <!-- Scroll computation -->\n    <property name=\"nuxeo.core.bulk.scroller.continueOnFailure\">false</property>\n    <property name=\"nuxeo.core.bulk.scroller.concurrency\">2</property>\n    <property name=\"nuxeo.core.bulk.scroller.scroll.size\">200</property>\n    <property name=\"nuxeo.core.bulk.scroller.scroll.keepAliveSeconds\">60</property>\n    <property name=\"nuxeo.core.bulk.scroller.produceImmediate\">false</property>\n    <!-- Status computation -->\n    <property name=\"nuxeo.core.bulk.status.continueOnFailure\">false</property>\n    <property name=\"nuxeo.core.bulk.status.maxRetries\">3</property>\n    <property name=\"nuxeo.core.bulk.status.delayMillis\">1000</property>\n    <property name=\"nuxeo.core.bulk.status.maxDelayMillis\">10000</property>\n    <property name=\"nuxeo.core.bulk.status.concurrency\">1</property>\n  </extension>\n\n\n  <!-- ======================================================================================= -->\n  <!-- Actions configuration -->\n\n  <extension target=\"org.nuxeo.ecm.core.bulk\" point=\"actions\">\n    <!-- Internal -->\n    <action name=\"trash\" bucketSize=\"100\" batchSize=\"25\" sequentialCommands=\"true\" />\n    <action name=\"removeProxy\" bucketSize=\"100\" batchSize=\"25\" />\n    <action name=\"setSystemProperties\" bucketSize=\"100\" batchSize=\"25\" />\n    <!-- Exposed through REST API -->\n    <action name=\"setProperties\" bucketSize=\"100\" batchSize=\"25\" httpEnabled=\"true\"\n      validationClass=\"org.nuxeo.ecm.core.bulk.validation.SetPropertiesValidation\"/>\n  </extension>\n\n  <!-- Action's processor -->\n  <extension target=\"org.nuxeo.runtime.stream.service\" point=\"streamProcessor\">\n    <!-- SetProperty processor -->\n    <streamProcessor name=\"setProperties\" class=\"org.nuxeo.ecm.core.bulk.action.SetPropertiesAction\" logConfig=\"bulk\"\n      defaultConcurrency=\"2\" defaultPartitions=\"2\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"500ms\" maxDelay=\"10s\" continueOnFailure=\"false\" />\n    </streamProcessor>\n\n    <!-- SetSystemProperty processor -->\n    <streamProcessor name=\"setSystemProperties\" class=\"org.nuxeo.ecm.core.bulk.action.SetSystemPropertiesAction\"\n      logConfig=\"bulk\" defaultConcurrency=\"2\" defaultPartitions=\"2\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"500ms\" maxDelay=\"10s\" continueOnFailure=\"false\" />\n    </streamProcessor>\n\n    <!-- RemoveProxy processor -->\n    <streamProcessor name=\"removeProxy\" class=\"org.nuxeo.ecm.core.bulk.action.RemoveProxyAction\" logConfig=\"bulk\"\n      defaultConcurrency=\"2\" defaultPartitions=\"2\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"500ms\" maxDelay=\"10s\" continueOnFailure=\"false\" />\n    </streamProcessor>\n\n    <!-- Trash processor -->\n    <streamProcessor name=\"trash\" class=\"org.nuxeo.ecm.core.bulk.action.TrashAction\" logConfig=\"bulk\"\n      defaultConcurrency=\"1\" defaultPartitions=\"1\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"500ms\" maxDelay=\"10s\" continueOnFailure=\"false\" />\n    </streamProcessor>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/bulk-config.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-core-bulk-10.10-HF33.jar",
      "groupId": "org.nuxeo.ecm.core",
      "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk",
      "id": "org.nuxeo.ecm.core.bulk",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_265\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 1.0.0\r\nBundle-Name: Nuxeo Core Bulk\r\nBundle-SymbolicName: org.nuxeo.ecm.core.bulk;singleton:=true\r\nNuxeo-Component: OSGI-INF/scroll-service.xml,OSGI-INF/scroll-contrib.x\r\n ml,OSGI-INF/bulk-component.xml,OSGI-INF/bulk-config.xml,OSGI-INF/bulk\r\n -io-contrib.xml\r\n\r\n",
      "maxResolutionOrder": 849,
      "minResolutionOrder": 124,
      "packages": [
        "nuxeo-10.10-HF05",
        "nuxeo-10.10-HF08",
        "nuxeo-10.10-HF09",
        "nuxeo-10.10-HF10",
        "nuxeo-10.10-HF11",
        "nuxeo-10.10-HF19",
        "nuxeo-10.10-HF21",
        "nuxeo-10.10-HF22",
        "nuxeo-10.10-HF28",
        "nuxeo-10.10-HF31",
        "nuxeo-10.10-HF33"
      ],
      "readme": {
        "blobProviderId": "default",
        "content": "nuxeo-core-bulk\n===============\n\n## About\n\nThis module provides the ability to execute actions asynchronously on a -possibly large- set of documents. This is done by leveraging [Nuxeo Streams](https://github.com/nuxeo/nuxeo/tree/master/nuxeo-runtime/nuxeo-runtime-stream#nuxeo-runtime-stream) that bring scalability and fault tolerance.\n\n## Definitions\n\n\n- __document set__: a list of documents from a repository represented as a list of document identifiers.\n\n- __action__: an operation that can be applied to a document set.\n\n- __command__: a set of parameters building a request to apply an action on a document set.\n\n- __bucket__: a portion of a document set that fits into a stream record.\n\n- __batch__: a smaller (or equals) portion of a bucket where the action is applied within a transaction.\n\n## Requirements\n\nTo work properly the Bulk Service need a true KeyValue storage to store the command its status,\nthere are 2 possibles choices:\n\n- Use `RedisKeyValueStore` this is the case if you have `nuxeo.redis.enabled=true` in your nuxeo.conf.\n- Use `MongoDBKeyValueStore` this is the case if you are using the `mongodb` template.\n\nYou should not rely on the default `MemKeyValueStore` implementation that flushes the data on restart.\n\n\n## Bulk Command\n\nThe bulk command is the input of the framework.\nIt is composed by the unique name of the action to execute, the NXQL query that materializes the document set, the user submitting the command, the repository and some optional parameters that could be needed by the action:\n\n```java\nBulkCommand command = new BulkCommand.Builder(\"myAction\", \"SELECT * from Document\")\n                                        .repository(\"myRepository\")\n                                        .user(\"myUser\")\n                                        .param(\"param1\", \"myParam1\")\n                                        .param(\"param2\", \"myParam2\")\n                                        .build();\nString commandId = Framework.getService(BulkService.class).submit(command);\n```\n\n\n## Execution flow\n\n![baf](bulk-overview.png)\n\n### The BulkService\nThe entry point is the [`BulkService`](./src/main/java/org/nuxeo/ecm/core/bulk/BulkService.java) that takes a bulk command as an input.\nThe service submits this command, meaning it appends the `BulkCommand` to the `command` stream.\n\nThe BulkService can also returns the status of a command which is internally stored into a KeyValueStore.\n\n### The Scroller computation\n\nThe `command` stream is the input of the `Scroller` computation.\n\nThis computation scrolls the database using a cursor to retrieve the document ids matching the NXQL query.\nThe ids are grouped into a bucket that fit into a record.\n\nThe `BulkBucket` record is appended to the action's stream.\n\nThe scroller send command status update to inform that the scroll is in progress or terminated and to set the total number of document in the materialized document set.\n\n### Actions processors\n\nEach action runs its own stream processor (a topology of computations).\n\nThe action processor must respect the following rules:\n\n- action must send a status update containing the number of processed documents since the last update.\n\n- action must handle possible error, for instance the user that send the command might not have write permission on all documents\n\n- the total number of processed documents reported must match at some point the number of documents in the document set.\n\n- action that aggregates bucket records per command must handle interleaved commands.\n  This can be done by maintaining a local state for each command.\n\n- action that aggregates bucket records per command should checkpoint only when there no other interleaved command in progress.\n  This is to prevent checkpoint while some records are not yet processed resulting in possible loss of record.\n\nAn [`AbstractBulkComputation`](./src/main/java/org/nuxeo/ecm/core/bulk/action/computation/AbstractBulkComputation.java) is provided so an action can be implemented easily with a single computation\nSee [`SetPropertiesAction`](./src/main/java/org/nuxeo/ecm/core/bulk/action/SetPropertiesAction.java) for a simple example.\n\nSee The [`CSVExportAction`](./src/main/java/org/nuxeo/ecm/core/bulk/action/CSVExportAction.java) and particularly the [`MakeBlob`](./src/main/java/org/nuxeo/ecm/core/bulk/action/computation/MakeBlob.java) computation for an advanced example.\n\n\n### The Status computation\n\nThis computation reads from the `status` stream and aggregate status update to build the current status of command.\nThe status is saved into a KeyValueStore.\nWhen the number of processed document is equals to the number of document in the set, the state is changed to completed.\nAnd the computation appends the final status to the `done` stream.\n\nThis `done` stream can be used as an input by custom computation to execute other actions once a command is completed.\n\n\n## How to contribute an action\n\nYou need to register a couple action / stream processor :\n\n```xml\n<extension target=\"org.nuxeo.ecm.core.bulk\" point=\"actions\">\n  <action name=\"myAction\" bucketSize=\"100\" batchSize=\"20\"/>\n</extension>\n```\n\n```xml\n<extension target=\"org.nuxeo.runtime.stream.service\" point=\"streamProcessor\">\n  <streamProcessor name=\"myAction\" class=\"org.nuxeo.ecm.core.bulk.action.MyActionProcessor\" logConfig=\"bulk\"\n      defaultConcurrency=\"2\" defaultPartitions=\"4\" />\n</extension>\n```\n\nSee [`SetPropertiesAction`](./src/main/java/org/nuxeo/ecm/core/bulk/action/SetPropertiesAction.java) for a very basic action implementation.\n\nYou can find more info on how to configure a stream processor in the following link:\nhttps://github.com/nuxeo/nuxeo/tree/master/nuxeo-runtime/nuxeo-runtime-stream#stream-processing\n\n\n## Testing a bulk action with REST API\n\nHere is an example on how to launch a bulk command and get status:\n\n```bash\n## Run a bulk action\ncurl -s -X POST 'http://localhost:8080/nuxeo/site/automation/Bulk.RunAction' -u Administrator:Administrator -H 'content-type: application/json+nxrequest' -d '{\n  \"context\": {},\n  \"params\": {\n    \"action\": \"csvExport\",\n    \"query\": \"SELECT * FROM File WHERE ecm:isVersion = 0 AND ecm:isTrashed = 0\",\n    \"parameters\": {}\n  }\n}' | tee /tmp/bulk-command.txt\n# {\"commandId\":\"e8cc059d-6b9d-480b-a6e1-b0edace6d982\"}\n\n## Extract the command id from the output\ncommandId=$(cat /tmp/bulk-command.txt | jq .[] | tr -d '\"')\n\n## Ask for the command status\ncurl -s -X GET \"http://localhost:8080/nuxeo/api/v1/bulk/$commandId\"  -u Administrator:Administrator  -H 'content-type: application/json' | jq .\n# {\n#  \"entity-type\": \"bulkStatus\",\n#  \"commandId\": \"e8cc059d-6b9d-480b-a6e1-b0edace6d982\",\n#  \"state\": \"RUNNING\",\n#  \"processed\": 0,\n#  \"total\": 1844,\n#  \"submitted\": \"2018-10-11T13:10:26.825Z\",\n#  \"scrollStart\": \"2018-10-11T13:10:26.827Z\",\n#  \"scrollEnd\": \"2018-10-11T13:10:26.846Z\",\n#  \"completed\": null\n#}\n\n## Wait for the completion of the command, this is only for testing purpose\n## a normal client should poll the status regularly instead of using this call:\ncurl -X POST 'http://localhost:8080/nuxeo/site/automation/Bulk.WaitForAction' -u Administrator:Administrator -H 'content-type: application/json+nxrequest' -d $'{\n  \"context\": {},\n  \"params\": {\n    \"commandId\": \"'\"$commandId\"'\",\n    \"timeoutSecond\": \"3600\"\n  }\n}'\n# {\"entity-type\":\"boolean\",\"value\":true}\n\n## Get the status again:\ncurl -s -X GET \"http://localhost:8080/nuxeo/api/v1/bulk/$commandId\"  -u Administrator:Administrator  -H 'content-type: application/json' | jq .\n#{\n#  \"entity-type\": \"bulkStatus\",\n#  \"commandId\": \"e8cc059d-6b9d-480b-a6e1-b0edace6d982\",\n#  \"state\": \"COMPLETED\",\n#  \"processed\": 1844,\n#  \"total\": 1844,\n#  \"submitted\": \"2018-10-11T13:10:26.825Z\",\n#  \"scrollStart\": \"2018-10-11T13:10:26.827Z\",\n#  \"scrollEnd\": \"2018-10-11T13:10:26.846Z\",\n#  \"completed\": \"2018-10-11T13:10:28.243Z\"\n#}\n```\n\nAlso a command can be aborted, this is useful for long running command launched by error, \nor to by pass a command that fails systematically which blocks the entire action processor:\n\n```\n## Abort a command\ncurl -s -X PUT \"http://localhost:8080/nuxeo/api/v1/bulk/$commandId/abort\"  -u Administrator:Administrator  -H 'content-type: application/json' | jq .\n\n```\n\n\n\n## Debugging\n\nAll streams used by the bulk service and action can be introspected using\nthe Nuxeo `bin/stream.sh` script.\n\nFor instance to see the latest commands submitted:\n```bash\n## When using Kafka\n./bin/stream.sh tail -k -l bulk-command --codec avro\n## When using Chronicle Queue\n# ./bin/stream.sh tail --chronicle ./nxserver/data/stream/bulk -l command --codec avro\n```\n| offset | watermark | flag | key | length | data |\n| --- | --- | --- | --- | ---: | --- |\n|bulk-command-01:+2|2018-10-11 11:18:34.955:0|[DEFAULT]|setProperties|164|{\"id\": \"b667b677-d40e-471a-8377-eb16dd301b42\", \"action\": \"setProperties\", \"query\": \"Select * from Document\", \"username\": \"Administrator\", \"repository\": \"default\", \"bucketSize\": 100, \"batchSize\": 25, \"params\": \"{\\\"dc:description\\\":\\\"a new new testbulk description\\\"}\"}|\n|bulk-command-00:+2|2018-10-11 15:10:26.826:0|[DEFAULT]|csvExport|151|{\"id\": \"e8cc059d-6b9d-480b-a6e1-b0edace6d982\", \"action\": \"csvExport\", \"query\": \"SELECT * FROM File WHERE ecm:isVersion = 0 AND ecm:isTrashed = 0\", \"username\": \"Administrator\", \"repository\": \"default\", \"bucketSize\": 100, \"batchSize\": 50, \"params\": null}|\n\n\nTo get the latest commands completed:\n```bash\n./bin/stream.sh tail -k -l bulk-done --codec avro\n```\n| offset | watermark | flag | key | length | data |\n| --- | --- | --- | --- | ---: | --- |\n|bulk-done-00:+4|2018-10-11 14:23:29.219:0|[DEFAULT]|580df47d-dd90-4d16-b23c-0e39ae363e06|96|{\"commandId\": \"580df47d-dd90-4d16-b23c-0e39ae363e06\", \"action\": \"csvExport\", \"delta\": false, \"processed\": 3873, \"state\": \"COMPLETED\", \"submitTime\": 1539260607207, \"scrollStartTime\": 1539260607275, \"scrollEndTime\": 1539260607326, \"completedTime\": 1539260609218, \"total\": 3873, \"result\": null}|\n|bulk-done-00:+5|2018-10-11 15:10:28.244:0|[DEFAULT]|e8cc059d-6b9d-480b-a6e1-b0edace6d982|96|{\"commandId\": \"e8cc059d-6b9d-480b-a6e1-b0edace6d982\", \"action\": \"csvExport\", \"delta\": false, \"processed\": 1844, \"state\": \"COMPLETED\", \"submitTime\": 1539263426825, \"scrollStartTime\": 1539263426827, \"scrollEndTime\": 1539263426846, \"completedTime\": 1539263428243, \"total\": 1844, \"result\": null}|\n\n\nOf course you can view the BulkBucket message\n```bash\n./bin/stream.sh tail -k -l bulk-csvExport --codec avro\n```\n| offset | watermark | flag | key | length | data |\n| --- | --- | --- | --- | ---: | --- |\n|bulk-csvExport-01:+48|2018-10-11 15:10:26.842:0|[DEFAULT]|e8cc059d-6b9d-480b-a6e1-b0edace6d982:18|3750|{\"commandId\": \"e8cc059d-6b9d-480b-a6e1-b0edace6d982\", \"ids\": [\"763135b8-ca49-4eea-9a52-1ceaa227e60a\", ...]}|\n\nAnd check for any lag on any computation, for more information on `stream.sh`:\n```bash\n./bin/stream.sh help\n```\n\n### Following Project QA Status\n\n[![Build Status](https://qa.nuxeo.org/jenkins/buildStatus/icon?job=master/nuxeo-master)](https://qa.nuxeo.org/jenkins/job/master/job/nuxeo-master/)\n\n## About Nuxeo\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
        "digest": "bb9cee7049052d2b4efbb91de84949a9",
        "encoding": "UTF-8",
        "length": 11670,
        "mimeType": "text/plain",
        "name": "README.md"
      },
      "requirements": [],
      "version": "10.10-HF33"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-imaging-core",
      "artifactVersion": "10.10-HF21",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.platform.picture.api",
          "org.nuxeo.ecm.platform.picture.convert",
          "org.nuxeo.ecm.platform.picture.core",
          "org.nuxeo.ecm.platform.picture.jsf",
          "org.nuxeo.ecm.platform.pictures.tiles",
          "org.nuxeo.ecm.platform.pictures.tiles.preview"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture",
        "id": "grp:org.nuxeo.ecm.platform.picture",
        "name": "org.nuxeo.ecm.platform.picture",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.platform.picture.core",
      "components": [
        {
          "@type": "NXComponent",
          "documentation": "\n    Defines configurations for imaging service\n  \n",
          "documentationHtml": "<p>\nDefines configurations for imaging service\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.picture.ImagingComponent--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.ImagingComponent.default.config/Contributions/org.nuxeo.ecm.platform.picture.ImagingComponent.default.config--configuration",
              "id": "org.nuxeo.ecm.platform.picture.ImagingComponent.default.config--configuration",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.picture.ImagingComponent",
                "name": "org.nuxeo.ecm.platform.picture.ImagingComponent",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.ecm.platform.picture.ImagingComponent\">\n\n    <configuration>\n      <parameters>\n        <!-- global configuration variables -->\n        <parameter name=\"conversionFormat\">jpg</parameter>\n      </parameters>\n    </configuration>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.picture.ImagingComponent--pictureConversions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.ImagingComponent.default.config/Contributions/org.nuxeo.ecm.platform.picture.ImagingComponent.default.config--pictureConversions",
              "id": "org.nuxeo.ecm.platform.picture.ImagingComponent.default.config--pictureConversions",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.picture.ImagingComponent",
                "name": "org.nuxeo.ecm.platform.picture.ImagingComponent",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"pictureConversions\" target=\"org.nuxeo.ecm.platform.picture.ImagingComponent\">\n\n    <pictureConversion chainId=\"Image.Blob.Resize\" default=\"true\" description=\"Thumbnail size\" id=\"Thumbnail\" maxSize=\"100\" order=\"0\" rendition=\"true\"/>\n\n    <pictureConversion chainId=\"Image.Blob.Resize\" default=\"true\" description=\"Small size\" id=\"Small\" maxSize=\"560\" order=\"100\" rendition=\"true\"/>\n\n    <pictureConversion chainId=\"Image.Blob.Resize\" default=\"true\" description=\"Medium size\" id=\"Medium\" maxSize=\"1000\" order=\"200\" rendition=\"true\"/>\n\n    <pictureConversion chainId=\"Image.Blob.Resize\" default=\"true\" description=\"Full HD size\" id=\"FullHD\" maxSize=\"1920\" order=\"300\" rendition=\"true\"/>\n\n    <pictureConversion chainId=\"Image.Blob.Resize\" default=\"true\" description=\"Original jpeg image\" id=\"OriginalJpeg\" order=\"400\" rendition=\"true\"/>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.ImagingComponent.default.config",
          "name": "org.nuxeo.ecm.platform.picture.ImagingComponent.default.config",
          "requirements": [],
          "resolutionOrder": 386,
          "services": [],
          "startOrder": 403,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.picture.ImagingComponent.default.config\">\n  <documentation>\n    Defines configurations for imaging service\n  </documentation>\n\n  <extension target=\"org.nuxeo.ecm.platform.picture.ImagingComponent\"\n    point=\"configuration\">\n\n    <configuration>\n      <parameters>\n        <!-- global configuration variables -->\n        <parameter name=\"conversionFormat\">jpg</parameter>\n      </parameters>\n    </configuration>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.picture.ImagingComponent\"\n    point=\"pictureConversions\">\n\n    <pictureConversion id=\"Thumbnail\" description=\"Thumbnail size\"\n      maxSize=\"100\" order=\"0\" chainId=\"Image.Blob.Resize\"\n      default=\"true\" rendition=\"true\" />\n\n    <pictureConversion id=\"Small\" description=\"Small size\"\n      maxSize=\"560\" order=\"100\" chainId=\"Image.Blob.Resize\"\n      default=\"true\" rendition=\"true\" />\n\n    <pictureConversion id=\"Medium\" description=\"Medium size\"\n      maxSize=\"1000\" order=\"200\" chainId=\"Image.Blob.Resize\"\n      default=\"true\" rendition=\"true\" />\n\n    <pictureConversion id=\"FullHD\" description=\"Full HD size\"\n      maxSize=\"1920\" order=\"300\" chainId=\"Image.Blob.Resize\"\n      default=\"true\" rendition=\"true\" />\n\n    <pictureConversion id=\"OriginalJpeg\" description=\"Original jpeg image\"\n      order=\"400\" chainId=\"Image.Blob.Resize\"\n      default=\"true\" rendition=\"true\" />\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/imaging-service-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.bulk--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.imaging.bulk/Contributions/org.nuxeo.ecm.platform.imaging.bulk--actions",
              "id": "org.nuxeo.ecm.platform.imaging.bulk--actions",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.bulk",
                "name": "org.nuxeo.ecm.core.bulk",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.core.bulk\">\n    <action batchSize=\"50\" bucketSize=\"100\" httpEnabled=\"false\" name=\"recomputeViews\" validationClass=\"org.nuxeo.ecm.platform.picture.recompute.RecomputeViewsActionValidation\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--streamProcessor",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.imaging.bulk/Contributions/org.nuxeo.ecm.platform.imaging.bulk--streamProcessor",
              "id": "org.nuxeo.ecm.platform.imaging.bulk--streamProcessor",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"streamProcessor\" target=\"org.nuxeo.runtime.stream.service\">\n    <streamProcessor class=\"org.nuxeo.ecm.platform.picture.recompute.RecomputeViewsAction\" defaultConcurrency=\"2\" defaultPartitions=\"2\" logConfig=\"bulk\" name=\"recomputeViews\">\n      <policy continueOnFailure=\"true\" delay=\"1s\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n      <option name=\"produceImmediate\">false</option>\n    </streamProcessor>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.imaging.bulk",
          "name": "org.nuxeo.ecm.platform.imaging.bulk",
          "requirements": [
            "org.nuxeo.ecm.core.bulk"
          ],
          "resolutionOrder": 387,
          "services": [],
          "startOrder": 358,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.imaging.bulk\" version=\"1.0.0\">\n\n  <require>org.nuxeo.ecm.core.bulk</require>\n\n  <extension target=\"org.nuxeo.ecm.core.bulk\" point=\"actions\">\n    <action name=\"recomputeViews\" bucketSize=\"100\" batchSize=\"50\" httpEnabled=\"false\"\n      validationClass=\"org.nuxeo.ecm.platform.picture.recompute.RecomputeViewsActionValidation\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.stream.service\" point=\"streamProcessor\">\n    <streamProcessor name=\"recomputeViews\"\n      class=\"org.nuxeo.ecm.platform.picture.recompute.RecomputeViewsAction\" logConfig=\"bulk\" defaultConcurrency=\"2\"\n      defaultPartitions=\"2\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"1s\" maxDelay=\"10s\" continueOnFailure=\"true\" />\n      <option name=\"produceImmediate\">false</option>\n    </streamProcessor>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/imaging-bulk-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.types.TypeService--types",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.jsf.types/Contributions/org.nuxeo.ecm.platform.picture.jsf.types--types",
              "id": "org.nuxeo.ecm.platform.picture.jsf.types--types",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.types.TypeService",
                "name": "org.nuxeo.ecm.platform.types.TypeService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"types\" target=\"org.nuxeo.ecm.platform.types.TypeService\">\n\n    <type id=\"PictureBook\">\n      <label>PictureBook</label>\n      <icon>/icons/picturebook.gif</icon>\n      <bigIcon>/icons/picturebook_100.png</bigIcon>\n      <description>PictureBook.description</description>\n      <category>Collaborative</category>\n      <default-view>view_documents</default-view>\n      <layouts mode=\"any\">\n        <layout>heading</layout>\n      </layouts>\n      <contentViews category=\"content\">\n        <contentView>document_content</contentView>\n      </contentViews>\n      <contentViews category=\"trash_content\">\n        <contentView showInExportView=\"false\">\n          document_trash_content\n        </contentView>\n      </contentViews>\n    </type>\n\n    <type id=\"Picture\">\n      <label>Picture</label>\n      <default-view>view_documents</default-view>\n      <icon>/icons/image.gif</icon>\n      <bigIcon>/icons/image_100.png</bigIcon>\n      <category>SimpleDocument</category>\n      <description>Picture.description</description>\n      <layouts mode=\"any\">\n        <layout>heading</layout>\n        <layout>picture</layout>\n      </layouts>\n      <layouts mode=\"edit\">\n        <layout>heading</layout>\n        <layout>picture</layout>\n        <layout>dublincore</layout>\n      </layouts>\n      <layouts mode=\"drive\">\n        <layout>heading</layout>\n        <layout>picture</layout>\n        <layout>dublincore</layout>\n      </layouts>\n    </type>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.jsf.types",
          "name": "org.nuxeo.ecm.platform.picture.jsf.types",
          "requirements": [],
          "resolutionOrder": 388,
          "services": [],
          "startOrder": 415,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.jsf.types\">\n\n  <extension target=\"org.nuxeo.ecm.platform.types.TypeService\" point=\"types\">\n\n    <type id=\"PictureBook\">\n      <label>PictureBook</label>\n      <icon>/icons/picturebook.gif</icon>\n      <bigIcon>/icons/picturebook_100.png</bigIcon>\n      <description>PictureBook.description</description>\n      <category>Collaborative</category>\n      <default-view>view_documents</default-view>\n      <layouts mode=\"any\">\n        <layout>heading</layout>\n      </layouts>\n      <contentViews category=\"content\">\n        <contentView>document_content</contentView>\n      </contentViews>\n      <contentViews category=\"trash_content\">\n        <contentView showInExportView=\"false\">\n          document_trash_content\n        </contentView>\n      </contentViews>\n    </type>\n\n    <type id=\"Picture\">\n      <label>Picture</label>\n      <default-view>view_documents</default-view>\n      <icon>/icons/image.gif</icon>\n      <bigIcon>/icons/image_100.png</bigIcon>\n      <category>SimpleDocument</category>\n      <description>Picture.description</description>\n      <layouts mode=\"any\">\n        <layout>heading</layout>\n        <layout>picture</layout>\n      </layouts>\n      <layouts mode=\"edit\">\n        <layout>heading</layout>\n        <layout>picture</layout>\n        <layout>dublincore</layout>\n      </layouts>\n      <layouts mode=\"drive\">\n        <layout>heading</layout>\n        <layout>picture</layout>\n        <layout>dublincore</layout>\n      </layouts>\n    </type>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/imaging-types-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.lifecycle.LifeCycleService--types",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.LifeCycleManagerExtensions/Contributions/org.nuxeo.ecm.platform.picture.LifeCycleManagerExtensions--types",
              "id": "org.nuxeo.ecm.platform.picture.LifeCycleManagerExtensions--types",
              "registrationOrder": 9,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "name": "org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"types\" target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\">\n    <types>\n      <type name=\"Picture\">default</type>\n    </types>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.LifeCycleManagerExtensions",
          "name": "org.nuxeo.ecm.platform.picture.LifeCycleManagerExtensions",
          "requirements": [],
          "resolutionOrder": 389,
          "services": [],
          "startOrder": 404,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.LifeCycleManagerExtensions\">\n\n  <extension target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\"\n             point=\"types\">\n    <types>\n      <type name=\"Picture\">default</type>\n    </types>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/picture-life-cycle-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.listeners/Contributions/org.nuxeo.ecm.platform.picture.listeners--listener",
              "id": "org.nuxeo.ecm.platform.picture.listeners--listener",
              "registrationOrder": 28,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n\n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.picture.listener.PictureChangedListener\" name=\"pictureChangedListener\" postCommit=\"false\" priority=\"20\">\n      <event>aboutToCreate</event>\n      <event>beforeDocumentModification</event>\n    </listener>\n\n    <!-- deprecated since 7.2 -->\n    <listener async=\"true\" class=\"org.nuxeo.ecm.platform.picture.listener.PictureViewListener\" enabled=\"false\" name=\"pictureViewListener\" postCommit=\"true\" priority=\"20\">\n      <event>updatePictureView</event>\n    </listener>\n\n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.picture.listener.PictureViewsGenerationListener\" name=\"pictureViewsGenerationListener\" postCommit=\"false\" priority=\"20\">\n      <event>documentCreated</event>\n      <event>documentModified</event>\n    </listener>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.listeners",
          "name": "org.nuxeo.ecm.platform.picture.listeners",
          "requirements": [],
          "resolutionOrder": 390,
          "services": [],
          "startOrder": 416,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.listeners\">\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\" point=\"listener\">\n\n    <listener name=\"pictureChangedListener\" async=\"false\" postCommit=\"false\"\n      class=\"org.nuxeo.ecm.platform.picture.listener.PictureChangedListener\" priority=\"20\">\n      <event>aboutToCreate</event>\n      <event>beforeDocumentModification</event>\n    </listener>\n\n    <!-- deprecated since 7.2 -->\n    <listener enabled=\"false\" name=\"pictureViewListener\" async=\"true\" postCommit=\"true\"\n      class=\"org.nuxeo.ecm.platform.picture.listener.PictureViewListener\"\n      priority=\"20\">\n      <event>updatePictureView</event>\n    </listener>\n\n    <listener name=\"pictureViewsGenerationListener\" async=\"false\" postCommit=\"false\"\n      class=\"org.nuxeo.ecm.platform.picture.listener.PictureViewsGenerationListener\" priority=\"20\">\n      <event>documentCreated</event>\n      <event>documentModified</event>\n    </listener>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/listeners-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.web.coreTypes/Contributions/org.nuxeo.ecm.platform.picture.web.coreTypes--schema",
              "id": "org.nuxeo.ecm.platform.picture.web.coreTypes--schema",
              "registrationOrder": 17,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"picturebook\" src=\"schema/picturebook.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.web.coreTypes/Contributions/org.nuxeo.ecm.platform.picture.web.coreTypes--doctype",
              "id": "org.nuxeo.ecm.platform.picture.web.coreTypes--doctype",
              "registrationOrder": 17,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <doctype extends=\"Folder\" name=\"PictureBook\">\n      <schema name=\"picturebook\"/>\n    </doctype>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.web.coreTypes",
          "name": "org.nuxeo.ecm.platform.picture.web.coreTypes",
          "requirements": [
            "org.nuxeo.ecm.core.schema.TypeService",
            "org.nuxeo.ecm.core.CoreExtensions"
          ],
          "resolutionOrder": 391,
          "services": [],
          "startOrder": 421,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.web.coreTypes\">\n\n  <require>org.nuxeo.ecm.core.schema.TypeService</require>\n  <require>org.nuxeo.ecm.core.CoreExtensions</require>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n             point=\"schema\">\n    <schema name=\"picturebook\" src=\"schema/picturebook.xsd\"/>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n             point=\"doctype\">\n    <doctype name=\"PictureBook\" extends=\"Folder\">\n      <schema name=\"picturebook\"/>\n    </doctype>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/picturebook-schemas-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.lifecycle.LifeCycleService--types",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.pictureweb.LifeCycleManagerExtensions/Contributions/org.nuxeo.ecm.platform.pictureweb.LifeCycleManagerExtensions--types",
              "id": "org.nuxeo.ecm.platform.pictureweb.LifeCycleManagerExtensions--types",
              "registrationOrder": 10,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "name": "org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"types\" target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\">\n    <types>\n      <type name=\"PictureBook\">default</type>\n\n    </types>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.pictureweb.LifeCycleManagerExtensions",
          "name": "org.nuxeo.ecm.platform.pictureweb.LifeCycleManagerExtensions",
          "requirements": [],
          "resolutionOrder": 392,
          "services": [],
          "startOrder": 429,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component\n    name=\"org.nuxeo.ecm.platform.pictureweb.LifeCycleManagerExtensions\">\n\n  <extension target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\"\n             point=\"types\">\n    <types>\n      <type name=\"PictureBook\">default</type>\n\n    </types>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/picturebook-life-cycle-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.commandline.executor.service.CommandLineExecutorComponent--command",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.commandline.imagemagick/Contributions/org.nuxeo.ecm.platform.picture.commandline.imagemagick--command",
              "id": "org.nuxeo.ecm.platform.picture.commandline.imagemagick--command",
              "registrationOrder": 7,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.commandline.executor.service.CommandLineExecutorComponent",
                "name": "org.nuxeo.ecm.platform.commandline.executor.service.CommandLineExecutorComponent",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"command\" target=\"org.nuxeo.ecm.platform.commandline.executor.service.CommandLineExecutorComponent\">\n\n    <command enabled=\"true\" name=\"identify\">\n      <commandLine>identify</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -ping -format '%m %w %h %z %[colorspace]' #{inputFilePath}[0]</parameterString>\n      <winParameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -ping -format \"%m %w %h %z %[colorspace]\" #{inputFilePath}[0]</winParameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command enabled=\"true\" name=\"crop\">\n      <commandLine>stream</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -map rgb -storage-type char -extract #{tileWidth}x#{tileHeight}+#{offsetX}+#{offsetY} #{inputFilePath}[0] - | convert -depth 8 -size #{tileWidth}x#{tileHeight} rgb:- #{outputFilePath}</parameterString>\n      <winParameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -map rgb -storage-type char -extract #{tileWidth}x#{tileHeight}+#{offsetX}+#{offsetY} #{inputFilePath}[0] - | convert -depth 8 -size #{tileWidth}x#{tileHeight} rgb:- #{outputFilePath}</winParameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command enabled=\"true\" name=\"resizer\">\n      <commandLine>convert</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -depth #{targetDepth} #{inputFilePath}[0] jpg:- | convert - -resize #{targetWidth}x#{targetHeight} #{outputFilePath}</parameterString>\n      <winParameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -depth #{targetDepth} #{inputFilePath}[0] -resize #{targetWidth}x#{targetHeight} #{outputFilePath}</winParameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command enabled=\"true\" name=\"gifResizer\">\n      <commandLine>convert</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -depth #{targetDept h} #{inputFilePath}[0] -coalesce -resize #{targetWidth}x#{targetHeight} -deconstruct #{outputFilePath}</parameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command enabled=\"true\" name=\"jpegResizer\">\n      <commandLine>convert</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -background white -flatten -depth #{targetDepth} #{inputFilePath}[0] jpg:- | convert - -resize #{targetWidth}x#{targetHeight} #{outputFilePath}</parameterString>\n      <winParameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -background white -flatten -depth #{targetDepth} #{inputFilePath}[0] -resize #{targetWidth}x#{targetHeight} #{outputFilePath}</winParameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command enabled=\"true\" name=\"rotate\">\n      <commandLine>convert</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet #{inputFilePath}[0] -rotate #{angle} #{outputFilePath}</parameterString>\n      <winParameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet #{inputFilePath}[0] -rotate #{angle} #{outputFilePath}</winParameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command enabled=\"true\" name=\"cropAndResize\">\n      <commandLine>stream</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -map #{mapComponents} -storage-type char -extract #{tileWidth}x#{tileHeight}+#{offsetX}+#{offsetY} #{inputFilePath}[0] - | convert -depth 8 -size #{tileWidth}x#{tileHeight} -resize #{targetWidth}x#{targetHeight}! #{mapComponents}:- #{outputFilePath}</parameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command enabled=\"true\" name=\"multiTiler\">\n      <commandLine>convert</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet #{inputFilePath}[0] -crop #{tileWidth}x#{tileHeight} +repage #{outputFilePath}</parameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.commandline.imagemagick",
          "name": "org.nuxeo.ecm.platform.picture.commandline.imagemagick",
          "requirements": [
            "org.nuxeo.ecm.platform.commandline.executor.service.defaultContrib"
          ],
          "resolutionOrder": 393,
          "services": [],
          "startOrder": 409,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.commandline.imagemagick\">\n\n  <require>org.nuxeo.ecm.platform.commandline.executor.service.defaultContrib</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.commandline.executor.service.CommandLineExecutorComponent\"\n    point=\"command\">\n\n    <command name=\"identify\" enabled=\"true\">\n      <commandLine>identify</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -ping -format '%m %w %h %z %[colorspace]' #{inputFilePath}[0]</parameterString>\n      <winParameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -ping -format \"%m %w %h %z %[colorspace]\" #{inputFilePath}[0]</winParameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command name=\"crop\" enabled=\"true\">\n      <commandLine>stream</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -map rgb -storage-type char -extract #{tileWidth}x#{tileHeight}+#{offsetX}+#{offsetY} #{inputFilePath}[0] - | convert -depth 8 -size #{tileWidth}x#{tileHeight} rgb:- #{outputFilePath}</parameterString>\n      <winParameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -map rgb -storage-type char -extract #{tileWidth}x#{tileHeight}+#{offsetX}+#{offsetY} #{inputFilePath}[0] - | convert -depth 8 -size #{tileWidth}x#{tileHeight} rgb:- #{outputFilePath}</winParameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command name=\"resizer\" enabled=\"true\">\n      <commandLine>convert</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -depth #{targetDepth} #{inputFilePath}[0] jpg:- | convert - -resize #{targetWidth}x#{targetHeight} #{outputFilePath}</parameterString>\n      <winParameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -depth #{targetDepth} #{inputFilePath}[0] -resize #{targetWidth}x#{targetHeight} #{outputFilePath}</winParameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command name=\"gifResizer\" enabled=\"true\">\n      <commandLine>convert</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -depth #{targetDept h} #{inputFilePath}[0] -coalesce -resize #{targetWidth}x#{targetHeight} -deconstruct #{outputFilePath}</parameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command name=\"jpegResizer\" enabled=\"true\">\n      <commandLine>convert</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -background white -flatten -depth #{targetDepth} #{inputFilePath}[0] jpg:- | convert - -resize #{targetWidth}x#{targetHeight} #{outputFilePath}</parameterString>\n      <winParameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -background white -flatten -depth #{targetDepth} #{inputFilePath}[0] -resize #{targetWidth}x#{targetHeight} #{outputFilePath}</winParameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command name=\"rotate\" enabled=\"true\">\n      <commandLine>convert</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet #{inputFilePath}[0] -rotate #{angle} #{outputFilePath}</parameterString>\n      <winParameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet #{inputFilePath}[0] -rotate #{angle} #{outputFilePath}</winParameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command name=\"cropAndResize\" enabled=\"true\">\n      <commandLine>stream</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet -map #{mapComponents} -storage-type char -extract #{tileWidth}x#{tileHeight}+#{offsetX}+#{offsetY} #{inputFilePath}[0] - | convert -depth 8 -size #{tileWidth}x#{tileHeight} -resize #{targetWidth}x#{targetHeight}! #{mapComponents}:- #{outputFilePath}</parameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n    <command name=\"multiTiler\" enabled=\"true\">\n      <commandLine>convert</commandLine>\n      <parameterString>-define registry:temporary-path=#{nuxeo.tmp.dir} -quiet #{inputFilePath}[0] -crop #{tileWidth}x#{tileHeight} +repage #{outputFilePath}</parameterString>\n      <installationDirective>You need to install ImageMagick.</installationDirective>\n    </command>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/commandline-imagemagick-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService",
          "documentation": "\n    The Library Selector service's goal is to provide easy configuration of image processing backend.\n    It means you can contribute different implementation of an interface to process images. We currently provide\n    ImageMagick and ImageJ implementations.\n    @author Laurent Doguin (ldoguin@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nThe Library Selector service&#39;s goal is to provide easy configuration of image processing backend.\nIt means you can contribute different implementation of an interface to process images. We currently provide\nImageMagick and ImageJ implementations.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService",
              "descriptors": [
                "org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorServiceDescriptor"
              ],
              "documentation": "@author Laurent Doguin (ldoguin@nuxeo.com) This\n      extension point let you choose or add an image processing library.\n    \n",
              "documentationHtml": "<p>\nextension point let you choose or add an image processing library.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService/ExtensionPoints/org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService--LibrarySelector",
              "id": "org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService--LibrarySelector",
              "label": "LibrarySelector (org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService)",
              "name": "LibrarySelector",
              "version": "10.10-HF21"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService--LibrarySelector",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService/Contributions/org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService--LibrarySelector",
              "id": "org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService--LibrarySelector",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService",
                "name": "org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"LibrarySelector\" target=\"org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService\">\n    <LibrarySelector>\n      <ImageUtils class=\"org.nuxeo.ecm.platform.picture.core.im.IMImageUtils\" name=\"ImageMagick\"/>\n    </LibrarySelector>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService",
          "name": "org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService",
          "requirements": [
            "org.nuxeo.ecm.platform.picture.commandline.imagemagick"
          ],
          "resolutionOrder": 394,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService/Services/org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelector",
              "id": "org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelector",
              "overriden": false,
              "version": "10.10-HF21"
            }
          ],
          "startOrder": 909,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService\">\n\n  <implementation class=\"org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService\"/>\n  <require>org.nuxeo.ecm.platform.picture.commandline.imagemagick</require>\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelector\"/>\n  </service>\n\n  <documentation>\n    The Library Selector service's goal is to provide easy configuration of image processing backend.\n    It means you can contribute different implementation of an interface to process images. We currently provide\n    ImageMagick and ImageJ implementations.\n    @author Laurent Doguin (ldoguin@nuxeo.com)\n  </documentation>\n\n  <extension-point name=\"LibrarySelector\">\n    <documentation>@author Laurent Doguin (ldoguin@nuxeo.com) This\n      extension point let you choose or add an image processing library.\n    </documentation>\n    <object class=\"org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorServiceDescriptor\"/>\n  </extension-point>\n\n  <extension target=\"org.nuxeo.ecm.platform.picture.core.libraryselector.LibrarySelectorService\"\n             point=\"LibrarySelector\">\n    <LibrarySelector>\n      <ImageUtils\n          class=\"org.nuxeo.ecm.platform.picture.core.im.IMImageUtils\"\n          name=\"ImageMagick\"/>\n    </LibrarySelector>\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/libraryselector-config-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Simple plugin for the file manager. Creates an Image document from\n      any graphic file.\n    \n",
              "documentationHtml": "<p>\nSimple plugin for the file manager. Creates an Image document from\nany graphic file.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.platform.filemanager.service.FileManagerService--plugins",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.filemanager.contrib/Contributions/org.nuxeo.ecm.platform.picture.filemanager.contrib--plugins",
              "id": "org.nuxeo.ecm.platform.picture.filemanager.contrib--plugins",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.filemanager.service.FileManagerService",
                "name": "org.nuxeo.ecm.platform.filemanager.service.FileManagerService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"plugins\" target=\"org.nuxeo.ecm.platform.filemanager.service.FileManagerService\">\n    <documentation>\n      Simple plugin for the file manager. Creates an Image document from\n      any graphic file.\n    </documentation>\n    <plugin class=\"org.nuxeo.ecm.platform.picture.extension.ImagePlugin\" name=\"Imageplugin\" order=\"10\">\n      <filter>image/jpeg</filter>\n      <filter>image/gif</filter>\n      <filter>image/png</filter>\n      <filter>image/tiff</filter>\n      <filter>image/bmp</filter>\n      <filter>image/x-ms-bmp</filter>\n      <!-- RAW images mime type -->\n      <filter>image/x-canon-cr2</filter>\n      <filter>image/x-canon-crw</filter>\n      <filter>image/x-nikon-nef</filter>\n      <filter>image/x-adobe-dng</filter>\n      <filter>image/x-panasonic-raw</filter>\n      <filter>image/x-fuji-raf</filter>\n      <filter>image/x-sigma-x3f</filter>\n      <filter>image/x-pentax-pef</filter>\n      <filter>image/x-kodak-dcr</filter>\n      <filter>image/x-kodak-kdc</filter>\n      <filter>image/x-sony-sr2</filter>\n      <filter>image/x-sony-arw</filter>\n      <filter>image/x-sony-srf</filter>\n      <filter>image/x-minolta-mrw</filter>\n      <filter>image/x-olympus-orf</filter>\n      <filter>image/x-raw-epson</filter>\n      <filter>image/x-portable-pixmap</filter>\n      <filter>image/x-dpx</filter>\n\n      <filter>image/raw</filter>\n      <filter>image/x-raw</filter>\n\n      <filter>image/svg.*</filter>\n\n      <filter>application/photoshop</filter>\n      <filter>application/illustrator</filter>\n      <filter>application/postscript</filter>\n    </plugin>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.filemanager.contrib",
          "name": "org.nuxeo.ecm.platform.picture.filemanager.contrib",
          "requirements": [],
          "resolutionOrder": 395,
          "services": [],
          "startOrder": 412,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.filemanager.contrib\">\n\n  <extension\n      target=\"org.nuxeo.ecm.platform.filemanager.service.FileManagerService\"\n      point=\"plugins\">\n    <documentation>\n      Simple plugin for the file manager. Creates an Image document from\n      any graphic file.\n    </documentation>\n    <plugin name=\"Imageplugin\"\n            class=\"org.nuxeo.ecm.platform.picture.extension.ImagePlugin\"\n            order=\"10\">\n      <filter>image/jpeg</filter>\n      <filter>image/gif</filter>\n      <filter>image/png</filter>\n      <filter>image/tiff</filter>\n      <filter>image/bmp</filter>\n      <filter>image/x-ms-bmp</filter>\n      <!-- RAW images mime type -->\n      <filter>image/x-canon-cr2</filter>\n      <filter>image/x-canon-crw</filter>\n      <filter>image/x-nikon-nef</filter>\n      <filter>image/x-adobe-dng</filter>\n      <filter>image/x-panasonic-raw</filter>\n      <filter>image/x-fuji-raf</filter>\n      <filter>image/x-sigma-x3f</filter>\n      <filter>image/x-pentax-pef</filter>\n      <filter>image/x-kodak-dcr</filter>\n      <filter>image/x-kodak-kdc</filter>\n      <filter>image/x-sony-sr2</filter>\n      <filter>image/x-sony-arw</filter>\n      <filter>image/x-sony-srf</filter>\n      <filter>image/x-minolta-mrw</filter>\n      <filter>image/x-olympus-orf</filter>\n      <filter>image/x-raw-epson</filter>\n      <filter>image/x-portable-pixmap</filter>\n      <filter>image/x-dpx</filter>\n\n      <filter>image/raw</filter>\n      <filter>image/x-raw</filter>\n\n      <filter>image/svg.*</filter>\n\n      <filter>application/photoshop</filter>\n      <filter>application/illustrator</filter>\n      <filter>application/postscript</filter>\n    </plugin>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/filemanager-plugins-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.thumbnail.ThumbnailService--thumbnailFactory",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.service.thumbnailfactory/Contributions/org.nuxeo.ecm.platform.picture.service.thumbnailfactory--thumbnailFactory",
              "id": "org.nuxeo.ecm.platform.picture.service.thumbnailfactory--thumbnailFactory",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.thumbnail.ThumbnailService",
                "name": "org.nuxeo.ecm.core.api.thumbnail.ThumbnailService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"thumbnailFactory\" target=\"org.nuxeo.ecm.core.api.thumbnail.ThumbnailService\">\n    <thumbnailFactory facet=\"Picture\" factoryClass=\"org.nuxeo.ecm.platform.picture.thumbnail.ThumbnailPictureFactory\" name=\"thumbnailPictureFactory\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.service.thumbnailfactory",
          "name": "org.nuxeo.ecm.platform.picture.service.thumbnailfactory",
          "requirements": [],
          "resolutionOrder": 396,
          "services": [],
          "startOrder": 419,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.service.thumbnailfactory\">\n\n  <extension target=\"org.nuxeo.ecm.core.api.thumbnail.ThumbnailService\"\n    point=\"thumbnailFactory\">\n    <thumbnailFactory name=\"thumbnailPictureFactory\"\n      facet=\"Picture\"\n      factoryClass=\"org.nuxeo.ecm.platform.picture.thumbnail.ThumbnailPictureFactory\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/picture-thumbnailfactory-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.work.service--queues",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.workmanager/Contributions/org.nuxeo.ecm.platform.picture.workmanager--queues",
              "id": "org.nuxeo.ecm.platform.picture.workmanager--queues",
              "registrationOrder": 9,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.work.service",
                "name": "org.nuxeo.ecm.core.work.service",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"queues\" target=\"org.nuxeo.ecm.core.work.service\">\n    <queue id=\"pictureViewsGeneration\">\n      <maxThreads>1</maxThreads>\n      <category>pictureViewsGeneration</category>\n    </queue>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.workmanager",
          "name": "org.nuxeo.ecm.platform.picture.workmanager",
          "requirements": [],
          "resolutionOrder": 397,
          "services": [],
          "startOrder": 424,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.workmanager\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.work.service\" point=\"queues\">\n    <queue id=\"pictureViewsGeneration\">\n      <maxThreads>1</maxThreads>\n      <category>pictureViewsGeneration</category>\n    </queue>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/picture-workmanager-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Define the default operations for the imaging library\n  \n",
          "documentationHtml": "<p>\nDefine the default operations for the imaging library\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--operations",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.operation/Contributions/org.nuxeo.ecm.platform.picture.operation--operations",
              "id": "org.nuxeo.ecm.platform.picture.operation--operations",
              "registrationOrder": 13,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"operations\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n\n    <operation class=\"org.nuxeo.ecm.platform.picture.operation.PictureResize\"/>\n\n    <operation class=\"org.nuxeo.ecm.platform.picture.operation.CreatePicture\"/>\n\n    <operation class=\"org.nuxeo.ecm.platform.picture.operation.GetPictureView\"/>\n\n    <operation class=\"org.nuxeo.ecm.platform.picture.operation.RecomputePictureViews\"/>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.automation.server.AutomationServer--bindings",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.operation/Contributions/org.nuxeo.ecm.platform.picture.operation--bindings",
              "id": "org.nuxeo.ecm.platform.picture.operation--bindings",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.automation.server.AutomationServer",
                "name": "org.nuxeo.ecm.automation.server.AutomationServer",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"bindings\" target=\"org.nuxeo.ecm.automation.server.AutomationServer\">\n\n    <binding name=\"Picture.RecomputeViews\">\n      <administrator>true</administrator>\n    </binding>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--chains",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.operation/Contributions/org.nuxeo.ecm.platform.picture.operation--chains",
              "id": "org.nuxeo.ecm.platform.picture.operation--chains",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"chains\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n\n    <chain id=\"Image.Blob.Resize\">\n      <operation id=\"Blob.RunConverter\">\n        <param name=\"converter\" type=\"string\">pictureResize</param>\n      </operation>\n    </chain>\n\n    <chain id=\"Image.Blob.ConvertToPDF\">\n      <operation id=\"Context.PopBlob\"/>\n      <operation id=\"Blob.RunConverter\">\n        <param name=\"converter\" type=\"string\">pictureConvertToPDF</param>\n      </operation>\n    </chain>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.operation",
          "name": "org.nuxeo.ecm.platform.picture.operation",
          "requirements": [],
          "resolutionOrder": 398,
          "services": [],
          "startOrder": 417,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.operation\">\n  <documentation>\n    Define the default operations for the imaging library\n  </documentation>\n\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\" point=\"operations\">\n\n    <operation class=\"org.nuxeo.ecm.platform.picture.operation.PictureResize\" />\n\n    <operation class=\"org.nuxeo.ecm.platform.picture.operation.CreatePicture\" />\n\n    <operation class=\"org.nuxeo.ecm.platform.picture.operation.GetPictureView\" />\n\n    <operation class=\"org.nuxeo.ecm.platform.picture.operation.RecomputePictureViews\" />\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.automation.server.AutomationServer\" point=\"bindings\">\n\n    <binding name=\"Picture.RecomputeViews\">\n      <administrator>true</administrator>\n    </binding>\n\n  </extension>\n\n  <extension point=\"chains\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n\n    <chain id=\"Image.Blob.Resize\">\n      <operation id=\"Blob.RunConverter\">\n        <param name=\"converter\" type=\"string\">pictureResize</param>\n      </operation>\n    </chain>\n\n    <chain id=\"Image.Blob.ConvertToPDF\">\n      <operation id=\"Context.PopBlob\" />\n      <operation id=\"Blob.RunConverter\">\n        <param name=\"converter\" type=\"string\">pictureConvertToPDF</param>\n      </operation>\n    </chain>\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/operations-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Properties controlling if the picture migration script must be run at startup\n    \n",
              "documentationHtml": "<p>\nProperties controlling if the picture migration script must be run at startup\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.imaging.base.properties/Contributions/org.nuxeo.ecm.platform.imaging.base.properties--configuration",
              "id": "org.nuxeo.ecm.platform.imaging.base.properties--configuration",
              "registrationOrder": 31,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <documentation>\n      Properties controlling if the picture migration script must be run at startup\n    </documentation>\n    <property name=\"nuxeo.picture.migration.enabled\">true</property>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.imaging.base.properties",
          "name": "org.nuxeo.ecm.platform.imaging.base.properties",
          "requirements": [],
          "resolutionOrder": 399,
          "services": [],
          "startOrder": 357,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.imaging.base.properties\">\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\"\n    point=\"configuration\">\n    <documentation>\n      Properties controlling if the picture migration script must be run at startup\n    </documentation>\n    <property name=\"nuxeo.picture.migration.enabled\">true</property>\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/imaging-base-properties.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.rendition.service.RenditionService--renditionDefinitionProviders",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.renditions/Contributions/org.nuxeo.ecm.platform.picture.renditions--renditionDefinitionProviders",
              "id": "org.nuxeo.ecm.platform.picture.renditions--renditionDefinitionProviders",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "name": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"renditionDefinitionProviders\" target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\">\n\n    <renditionDefinitionProvider class=\"org.nuxeo.ecm.platform.picture.rendition.PictureRenditionDefinitionProvider\" name=\"pictureRenditionDefinitionProvider\">\n      <filters>\n        <filter-id>hasPictureFacet</filter-id>\n      </filters>\n    </renditionDefinitionProvider>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.rendition.service.RenditionService--renditionDefinitions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.renditions/Contributions/org.nuxeo.ecm.platform.picture.renditions--renditionDefinitions",
              "id": "org.nuxeo.ecm.platform.picture.renditions--renditionDefinitions",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "name": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"renditionDefinitions\" target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\">\n\n    <renditionDefinition name=\"imageToPDF\">\n      <label>label.rendition.pdf</label>\n      <icon>/icons/pdf.png</icon>\n      <contentType>application/pdf</contentType>\n      <operationChain>Image.Blob.ConvertToPDF</operationChain>\n      <filters>\n        <filter-id>hasPictureFacet</filter-id>\n      </filters>\n    </renditionDefinition>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.renditions/Contributions/org.nuxeo.ecm.platform.picture.renditions--filters",
              "id": "org.nuxeo.ecm.platform.picture.renditions--filters",
              "registrationOrder": 13,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <filter id=\"hasPictureFacet\">\n      <rule grant=\"true\">\n        <facet>Picture</facet>\n      </rule>\n    </filter>\n\n    <filter append=\"true\" id=\"allowPDFRendition\">\n      <rule grant=\"false\">\n        <facet>Picture</facet>\n      </rule>\n    </filter>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.renditions",
          "name": "org.nuxeo.ecm.platform.picture.renditions",
          "requirements": [
            "org.nuxeo.ecm.platform.rendition.contrib"
          ],
          "resolutionOrder": 496,
          "services": [],
          "startOrder": 418,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.renditions\">\n\n  <require>org.nuxeo.ecm.platform.rendition.contrib</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\"\n    point=\"renditionDefinitionProviders\">\n\n    <renditionDefinitionProvider name=\"pictureRenditionDefinitionProvider\"\n      class=\"org.nuxeo.ecm.platform.picture.rendition.PictureRenditionDefinitionProvider\">\n      <filters>\n        <filter-id>hasPictureFacet</filter-id>\n      </filters>\n    </renditionDefinitionProvider>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\"\n    point=\"renditionDefinitions\">\n\n    <renditionDefinition name=\"imageToPDF\">\n      <label>label.rendition.pdf</label>\n      <icon>/icons/pdf.png</icon>\n      <contentType>application/pdf</contentType>\n      <operationChain>Image.Blob.ConvertToPDF</operationChain>\n      <filters>\n        <filter-id>hasPictureFacet</filter-id>\n      </filters>\n    </renditionDefinition>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"filters\">\n\n    <filter id=\"hasPictureFacet\">\n      <rule grant=\"true\">\n        <facet>Picture</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"allowPDFRendition\" append=\"true\">\n      <rule grant=\"false\">\n        <facet>Picture</facet>\n      </rule>\n    </filter>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/picture-renditions-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.coreTypes/Contributions/org.nuxeo.ecm.platform.picture.coreTypes--schema",
              "id": "org.nuxeo.ecm.platform.picture.coreTypes--schema",
              "registrationOrder": 31,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"picture\" src=\"schema/picture.xsd\"/>\n    <schema name=\"image_metadata\" prefix=\"imd\" src=\"schema/image_metadata.xsd\"/>\n    <schema name=\"iptc\" prefix=\"iptc\" src=\"schema/iptc.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.coreTypes/Contributions/org.nuxeo.ecm.platform.picture.coreTypes--doctype",
              "id": "org.nuxeo.ecm.platform.picture.coreTypes--doctype",
              "registrationOrder": 29,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <facet name=\"Picture\" perDocumentQuery=\"false\">\n      <schema name=\"file\"/>\n      <schema name=\"picture\"/>\n      <schema name=\"image_metadata\"/>\n    </facet>\n\n    <!-- deprecated since 7.1, here for compat -->\n    <facet name=\"MultiviewPicture\"/>\n\n    <doctype extends=\"Document\" name=\"Picture\">\n      <schema name=\"common\"/>\n      <schema name=\"uid\"/>\n      <schema name=\"dublincore\"/>\n      <facet name=\"Picture\"/>\n      <facet name=\"Versionable\"/>\n      <facet name=\"Publishable\"/>\n      <facet name=\"Commentable\"/>\n      <facet name=\"HasRelatedText\"/>\n      <facet name=\"NXTag\"/>\n    </doctype>\n\n    <doctype append=\"true\" name=\"Folder\">\n      <subtypes>\n        <type>Picture</type>\n      </subtypes>\n    </doctype>\n    <doctype append=\"true\" name=\"OrderedFolder\">\n      <subtypes>\n        <type>Picture</type>\n      </subtypes>\n    </doctype>\n    <doctype append=\"true\" name=\"Workspace\">\n      <subtypes>\n        <type>Picture</type>\n      </subtypes>\n    </doctype>\n    <doctype append=\"true\" name=\"PictureBook\">\n      <subtypes>\n        <type>Picture</type>\n      </subtypes>\n    </doctype>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.coreTypes",
          "name": "org.nuxeo.ecm.platform.picture.coreTypes",
          "requirements": [
            "org.nuxeo.ecm.core.schema.TypeService",
            "org.nuxeo.ecm.core.CoreExtensions",
            "org.nuxeo.ecm.tags.schemas"
          ],
          "resolutionOrder": 538,
          "services": [],
          "startOrder": 411,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.coreTypes\">\n\n  <require>org.nuxeo.ecm.core.schema.TypeService</require>\n  <require>org.nuxeo.ecm.core.CoreExtensions</require>\n  <require>org.nuxeo.ecm.tags.schemas</require>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n             point=\"schema\">\n    <schema name=\"picture\" src=\"schema/picture.xsd\"/>\n    <schema name=\"image_metadata\" src=\"schema/image_metadata.xsd\" prefix=\"imd\"/>\n    <schema name=\"iptc\" src=\"schema/iptc.xsd\" prefix=\"iptc\"/>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n             point=\"doctype\">\n\n    <facet name=\"Picture\" perDocumentQuery=\"false\">\n      <schema name=\"file\"/>\n      <schema name=\"picture\"/>\n      <schema name=\"image_metadata\"/>\n    </facet>\n\n    <!-- deprecated since 7.1, here for compat -->\n    <facet name=\"MultiviewPicture\"/>\n\n    <doctype name=\"Picture\" extends=\"Document\">\n      <schema name=\"common\"/>\n      <schema name=\"uid\"/>\n      <schema name=\"dublincore\"/>\n      <facet name=\"Picture\"/>\n      <facet name=\"Versionable\"/>\n      <facet name=\"Publishable\"/>\n      <facet name=\"Commentable\"/>\n      <facet name=\"HasRelatedText\"/>\n      <facet name=\"NXTag\" />\n    </doctype>\n\n    <doctype name=\"Folder\" append=\"true\">\n      <subtypes>\n        <type>Picture</type>\n      </subtypes>\n    </doctype>\n    <doctype name=\"OrderedFolder\" append=\"true\">\n      <subtypes>\n        <type>Picture</type>\n      </subtypes>\n    </doctype>\n    <doctype name=\"Workspace\" append=\"true\">\n      <subtypes>\n        <type>Picture</type>\n      </subtypes>\n    </doctype>\n    <doctype name=\"PictureBook\" append=\"true\">\n      <subtypes>\n        <type>Picture</type>\n      </subtypes>\n    </doctype>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/picture-schemas-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent--AdapterFactory",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.web.preview.adapter.contrib/Contributions/org.nuxeo.ecm.platform.picture.web.preview.adapter.contrib--AdapterFactory",
              "id": "org.nuxeo.ecm.platform.picture.web.preview.adapter.contrib--AdapterFactory",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent",
                "name": "org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"AdapterFactory\" target=\"org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent\">\n\n    <previewAdapter enabled=\"true\" name=\"picturePreviewAdapter\">\n      <typeName>Picture</typeName>\n      <class>org.nuxeo.ecm.platform.picture.preview.adapter.factories.PicturePreviewAdapterFactory</class>\n    </previewAdapter>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent--MimeTypePreviewer",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.web.preview.adapter.contrib/Contributions/org.nuxeo.ecm.platform.picture.web.preview.adapter.contrib--MimeTypePreviewer",
              "id": "org.nuxeo.ecm.platform.picture.web.preview.adapter.contrib--MimeTypePreviewer",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent",
                "name": "org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent",
                "type": "service"
              },
              "version": "10.10-HF21",
              "xml": "<extension point=\"MimeTypePreviewer\" target=\"org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent\">\n    <previewer class=\"org.nuxeo.ecm.platform.picture.preview.adapter.PicturePreviewer\">\n      <pattern>image.*</pattern>\n    </previewer>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.web.preview.adapter.contrib",
          "name": "org.nuxeo.ecm.platform.picture.web.preview.adapter.contrib",
          "requirements": [
            "org.nuxeo.ecm.platform.preview.adapter.contrib"
          ],
          "resolutionOrder": 733,
          "services": [],
          "startOrder": 423,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.web.preview.adapter.contrib\">\n\n  <require>org.nuxeo.ecm.platform.preview.adapter.contrib</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent\"\n    point=\"AdapterFactory\">\n\n    <previewAdapter name=\"picturePreviewAdapter\" enabled=\"true\">\n      <typeName>Picture</typeName>\n      <class>org.nuxeo.ecm.platform.picture.preview.adapter.factories.PicturePreviewAdapterFactory</class>\n    </previewAdapter>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.preview.adapter.PreviewAdapterManagerComponent\"\n    point=\"MimeTypePreviewer\">\n    <previewer class=\"org.nuxeo.ecm.platform.picture.preview.adapter.PicturePreviewer\">\n      <pattern>image.*</pattern>\n    </previewer>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/preview-adapter-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.picture.ImagingComponent",
          "documentation": "\n    The imaging component is providing API for image manipulations\n    @author Max Stepanov\n  \n",
          "documentationHtml": "<p>\nThe imaging component is providing API for image manipulations\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.picture.ImagingComponent",
              "descriptors": [
                "org.nuxeo.ecm.platform.picture.api.ImagingConfigurationDescriptor"
              ],
              "documentation": "\n      Extension point to contribute configuration information that will be used by the\n      ImagingService\n    \n",
              "documentationHtml": "<p>\nExtension point to contribute configuration information that will be used by the\nImagingService\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.ImagingComponent/ExtensionPoints/org.nuxeo.ecm.platform.picture.ImagingComponent--configuration",
              "id": "org.nuxeo.ecm.platform.picture.ImagingComponent--configuration",
              "label": "configuration (org.nuxeo.ecm.platform.picture.ImagingComponent)",
              "name": "configuration",
              "version": "10.10-HF21"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.picture.ImagingComponent",
              "descriptors": [
                "org.nuxeo.ecm.platform.picture.api.PictureConversion"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.ImagingComponent/ExtensionPoints/org.nuxeo.ecm.platform.picture.ImagingComponent--pictureConversions",
              "id": "org.nuxeo.ecm.platform.picture.ImagingComponent--pictureConversions",
              "label": "pictureConversions (org.nuxeo.ecm.platform.picture.ImagingComponent)",
              "name": "pictureConversions",
              "version": "10.10-HF21"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.ImagingComponent",
          "name": "org.nuxeo.ecm.platform.picture.ImagingComponent",
          "requirements": [
            "org.nuxeo.ecm.core.operation.OperationServiceComponent"
          ],
          "resolutionOrder": 828,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.picture.ImagingComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core/org.nuxeo.ecm.platform.picture.ImagingComponent/Services/org.nuxeo.ecm.platform.picture.api.ImagingService",
              "id": "org.nuxeo.ecm.platform.picture.api.ImagingService",
              "overriden": false,
              "version": "10.10-HF21"
            }
          ],
          "startOrder": 908,
          "version": "10.10-HF21",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.picture.ImagingComponent\"\n  version=\"1.0\">\n  <documentation>\n    The imaging component is providing API for image manipulations\n    @author Max Stepanov\n  </documentation>\n\n  <require>org.nuxeo.ecm.core.operation.OperationServiceComponent</require>\n  <implementation class=\"org.nuxeo.ecm.platform.picture.ImagingComponent\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.picture.api.ImagingService\" />\n  </service>\n\n  <extension-point name=\"configuration\">\n    <documentation>\n      Extension point to contribute configuration information that will be used by the\n      ImagingService\n    </documentation>\n    <object class=\"org.nuxeo.ecm.platform.picture.api.ImagingConfigurationDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"pictureConversions\">\n    <object class=\"org.nuxeo.ecm.platform.picture.api.PictureConversion\" />\n  </extension-point>\n</component>\n\n",
          "xmlFileName": "/OSGI-INF/imaging-service-framework.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-platform-imaging-core-10.10-HF21.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.picture/org.nuxeo.ecm.platform.picture.core",
      "id": "org.nuxeo.ecm.platform.picture.core",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_222\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 0.0.0.SNAPSHOT\r\nExport-Package: org.nuxeo.ecm.platform.picture.core\r\nPrivate-Package: schema,org.nuxeo.ecm.platform.picture,lib,org.nuxeo.e\r\n cm.platform.picture.magick,org.nuxeo.ecm.platform.picture.core.imagej\r\n ,org.nuxeo.ecm.platform.picture.extension,os.win32.x86,org.nuxeo.ecm.\r\n platform.picture.magick.utils,org.nuxeo.ecm.platform.picture.core.lib\r\n raryselector,org.nuxeo.ecm.platform.picture.core.im\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Category: core,stateful\r\nBundle-Name: Nuxeo Picture Imaging Core\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nBundle-Vendor: Nuxeo\r\nEclipse-LazyStart: true\r\nNuxeo-Component: OSGI-INF/imaging-service-framework.xml,OSGI-INF/imagi\r\n ng-service-contrib.xml,OSGI-INF/imaging-bulk-contrib.xml,OSGI-INF/pic\r\n ture-schemas-contrib.xml,OSGI-INF/imaging-types-contrib.xml,OSGI-INF/\r\n picture-life-cycle-contrib.xml,OSGI-INF/listeners-contrib.xml,OSGI-IN\r\n F/picturebook-schemas-contrib.xml,OSGI-INF/picturebook-life-cycle-con\r\n trib.xml,OSGI-INF/libraryselector-config-framework.xml,OSGI-INF/comma\r\n ndline-imagemagick-contrib.xml,OSGI-INF/filemanager-plugins-contrib.x\r\n ml,OSGI-INF/picture-thumbnailfactory-contrib.xml,OSGI-INF/picture-wor\r\n kmanager-contrib.xml,OSGI-INF/operations-contrib.xml,OSGI-INF/picture\r\n -renditions-contrib.xml,OSGI-INF/imaging-base-properties.xml,OSGI-INF\r\n /preview-adapter-contrib.xml\r\nImport-Package: com.drew.imaging.jpeg,com.drew.metadata,com.drew.metad\r\n ata.iptc,ij,ij.io,ij.process,it.tidalwave.image.jai,it.tidalwave.imag\r\n e.java2d;img=split;version=\"0.9.5\",javax.annotation;version=\"1.0\",jav\r\n ax.imageio,javax.imageio.metadata,javax.imageio.stream,org.apache.com\r\n mons.logging,org.nuxeo.common.utils,org.nuxeo.common.xmap.annotation,\r\n org.nuxeo.ecm.core;api=split,org.nuxeo.ecm.core.api;api=split,org.nux\r\n eo.ecm.core.api.impl,org.nuxeo.ecm.core.api.impl.blob,org.nuxeo.ecm.d\r\n irectory;api=split,org.nuxeo.ecm.platform.commandline.executor.api,or\r\n g.nuxeo.ecm.platform.filemanager.service.extension,org.nuxeo.ecm.plat\r\n form.filemanager.utils,org.nuxeo.ecm.platform.picture.api,org.nuxeo.e\r\n cm.platform.picture.api.adapters,org.nuxeo.ecm.platform.types,org.nux\r\n eo.runtime,org.nuxeo.runtime.api,org.nuxeo.runtime.model,org.nuxeo.ru\r\n ntime.services.streaming,org.nuxeo.ecm.automation,org.nuxeo.ecm.autom\r\n ation.core,org.nuxeo.ecm.automation.core.annotations\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.picture.core;singleton=true\r\nEclipse-RegisterBuddy: org.nuxeo.ecm.platform.filemanager.core\r\n\r\n",
      "maxResolutionOrder": 828,
      "minResolutionOrder": 386,
      "packages": [
        "nuxeo-10.10-HF05",
        "nuxeo-10.10-HF08",
        "nuxeo-10.10-HF09",
        "nuxeo-10.10-HF10",
        "nuxeo-10.10-HF12",
        "nuxeo-10.10-HF15",
        "nuxeo-10.10-HF19",
        "nuxeo-10.10-HF21",
        "nuxeo-dam"
      ],
      "requirements": [],
      "version": "10.10-HF21"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-core-storage-mongodb",
      "artifactVersion": "10.10-HF29",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.core.storage",
          "org.nuxeo.ecm.core.storage.dbs",
          "org.nuxeo.ecm.core.storage.mem",
          "org.nuxeo.ecm.core.storage.mongodb",
          "org.nuxeo.ecm.core.storage.sql",
          "org.nuxeo.ecm.core.storage.sql.management"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage",
        "id": "grp:org.nuxeo.ecm.core.storage",
        "name": "org.nuxeo.ecm.core.storage",
        "parentIds": [
          "grp:org.nuxeo.ecm.core"
        ],
        "readmes": [],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.core.storage.mongodb",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Property to disable the fact that on MongoDB a LIKE match anchors its search\n      (like in SQL databases), i.e., absent wildcards, it does not match in the middle of a string.\n\n      When true, does not match in the middle of a string.\n      When false, works as if there was a % on each side of the LIKE expression.\n\n      @since 10.3\n    \n",
              "documentationHtml": "<p>\nProperty to disable the fact that on MongoDB a LIKE match anchors its search\n(like in SQL databases), i.e., absent wildcards, it does not match in the middle of a string.\n</p><p>\nWhen true, does not match in the middle of a string.\nWhen false, works as if there was a % on each side of the LIKE expression.\n</p><p>\n&#64;since 10.3\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.mongodb/org.nuxeo.ecm.core.storage.mongodb.configuration/Contributions/org.nuxeo.ecm.core.storage.mongodb.configuration--configuration",
              "id": "org.nuxeo.ecm.core.storage.mongodb.configuration--configuration",
              "registrationOrder": 19,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "10.10-HF29",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <documentation>\n      Property to disable the fact that on MongoDB a LIKE match anchors its search\n      (like in SQL databases), i.e., absent wildcards, it does not match in the middle of a string.\n\n      When true, does not match in the middle of a string.\n      When false, works as if there was a % on each side of the LIKE expression.\n\n      @since 10.3\n    </documentation>\n    <!-- default is true for 10.3 and later -->\n    <property name=\"nuxeo.mongodb.like.anchored\">true</property>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.mongodb/org.nuxeo.ecm.core.storage.mongodb.configuration",
          "name": "org.nuxeo.ecm.core.storage.mongodb.configuration",
          "requirements": [],
          "resolutionOrder": 154,
          "services": [],
          "startOrder": 154,
          "version": "10.10-HF29",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.storage.mongodb.configuration\">\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <documentation>\n      Property to disable the fact that on MongoDB a LIKE match anchors its search\n      (like in SQL databases), i.e., absent wildcards, it does not match in the middle of a string.\n\n      When true, does not match in the middle of a string.\n      When false, works as if there was a % on each side of the LIKE expression.\n\n      @since 10.3\n    </documentation>\n    <!-- default is true for 10.3 and later -->\n    <property name=\"nuxeo.mongodb.like.anchored\">true</property>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/mongodb-configuration-properties.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService",
          "documentation": "\n    Manages MongoDB repositories.\n  \n",
          "documentationHtml": "<p>\nManages MongoDB repositories.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService",
              "descriptors": [
                "org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryDescriptor"
              ],
              "documentation": "\n      Extension points to register MongoDB repositories. The repository will ask for a MongoDB access to\n      MongoDBConnectionService with id 'repository/[repositoryName]'.\n\n      Example:\n      <code>\n    <repository isDefault=\"true\" label=\"MongoDB Repository\" name=\"default\">\n        <fulltext disabled=\"false\"/>\n    </repository>\n</code>\n",
              "documentationHtml": "<p>\nExtension points to register MongoDB repositories. The repository will ask for a MongoDB access to\nMongoDBConnectionService with id &#39;repository/[repositoryName]&#39;.\n</p><p>\nExample:\n</p><p></p><pre><code>    &lt;repository isDefault&#61;&#34;true&#34; label&#61;&#34;MongoDB Repository&#34; name&#61;&#34;default&#34;&gt;\n        &lt;fulltext disabled&#61;&#34;false&#34;/&gt;\n    &lt;/repository&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.mongodb/org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService/ExtensionPoints/org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService--repository",
              "id": "org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService--repository",
              "label": "repository (org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService)",
              "name": "repository",
              "version": "10.10-HF29"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.mongodb/org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService",
          "name": "org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService",
          "requirements": [
            "org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService"
          ],
          "resolutionOrder": 806,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.mongodb/org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService/Services/org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService",
              "id": "org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService",
              "overriden": false,
              "version": "10.10-HF29"
            }
          ],
          "startOrder": 865,
          "version": "10.10-HF29",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService\" version=\"1.0.0\">\n\n  <require>org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService</require>\n\n  <documentation>\n    Manages MongoDB repositories.\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService\" />\n  </service>\n\n  <extension-point name=\"repository\">\n    <documentation>\n      Extension points to register MongoDB repositories. The repository will ask for a MongoDB access to\n      MongoDBConnectionService with id 'repository/[repositoryName]'.\n\n      Example:\n      <code>\n        <repository name=\"default\" label=\"MongoDB Repository\" isDefault=\"true\">\n          <fulltext disabled=\"false\" />\n        </repository>\n      </code>\n    </documentation>\n    <object class=\"org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/mongodb-repository-service.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-core-storage-mongodb-10.10-HF29.jar",
      "groupId": "org.nuxeo.ecm.core",
      "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.mongodb",
      "id": "org.nuxeo.ecm.core.storage.mongodb",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_222\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 10.10-HF29-t20200701-010446\r\nBundle-SymbolicName: org.nuxeo.ecm.core.storage.mongodb\r\nNuxeo-Component: OSGI-INF/mongodb-repository-service.xml,OSGI-INF/mong\r\n odb-configuration-properties.xml\r\n\r\n",
      "maxResolutionOrder": 806,
      "minResolutionOrder": 154,
      "packages": [
        "nuxeo-10.10-HF02",
        "nuxeo-10.10-HF04",
        "nuxeo-10.10-HF05",
        "nuxeo-10.10-HF09",
        "nuxeo-10.10-HF10",
        "nuxeo-10.10-HF14",
        "nuxeo-10.10-HF15",
        "nuxeo-10.10-HF17",
        "nuxeo-10.10-HF18",
        "nuxeo-10.10-HF21",
        "nuxeo-10.10-HF23",
        "nuxeo-10.10-HF24",
        "nuxeo-10.10-HF25",
        "nuxeo-10.10-HF27",
        "nuxeo-10.10-HF29"
      ],
      "requirements": [],
      "version": "10.10-HF29"
    }
  ],
  "creationDate": 1664793571025,
  "key": "Nuxeo Platform LTS 2019-10.10",
  "name": "Nuxeo Platform LTS 2019",
  "operations": [
    {
      "@type": "NXOperation",
      "aliases": [
        "Picture.getView"
      ],
      "category": "Conversion",
      "contributingComponent": "org.nuxeo.ecm.platform.picture.operation",
      "description": "Get an image from a Picture document.",
      "hierarchyPath": "/op:Picture.GetView",
      "label": "Get image view",
      "name": "Picture.GetView",
      "operationClass": "org.nuxeo.ecm.platform.picture.operation.GetPictureView",
      "params": [
        {
          "description": "",
          "isRequired": false,
          "name": "viewName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "blob"
      ],
      "since": "",
      "url": "Picture.GetView",
      "version": "10.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.platform.picture.operation",
      "description": "Create a Picture document in the input folder. You can initialize the document properties using the 'properties' parameter. The properties are specified as <i>key=value</i> pairs separated by a new line. The key <i>originalPicture</i> is used to reference the JSON representation of the Blob for the original picture. The <i>pictureTemplates</i> parameter can be used to define the size of the different views to be generated, each line must be a JSONObject { title=\"title\", description=\"description\", maxsize=maxsize}. Returns the created document.",
      "hierarchyPath": "/op:Picture.Create",
      "label": "Create Picture",
      "name": "Picture.Create",
      "operationClass": "org.nuxeo.ecm.platform.picture.operation.CreatePicture",
      "params": [
        {
          "description": "",
          "isRequired": false,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": "",
          "isRequired": false,
          "name": "pictureTemplates",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": "",
          "isRequired": false,
          "name": "properties",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "since": "",
      "url": "Picture.Create",
      "version": "10.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "org.nuxeo.ecm.platform.picture.operation",
      "hierarchyPath": "/op:Image.Blob.ConvertToPDF",
      "label": "Image.Blob.ConvertToPDF",
      "name": "Image.Blob.ConvertToPDF",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "void",
        "blob"
      ],
      "since": "",
      "url": "Image.Blob.ConvertToPDF",
      "version": "10.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Picture.resize"
      ],
      "category": "Conversion",
      "contributingComponent": "org.nuxeo.ecm.platform.picture.operation",
      "description": "Use conversion service to resize a picture contained in a Document or a Blob",
      "hierarchyPath": "/op:Picture.Resize",
      "label": "Resize a picture",
      "name": "Picture.Resize",
      "operationClass": "org.nuxeo.ecm.platform.picture.operation.PictureResize",
      "params": [
        {
          "description": "",
          "isRequired": true,
          "name": "maxHeight",
          "order": 0,
          "type": "int",
          "values": [],
          "widget": null
        },
        {
          "description": "",
          "isRequired": true,
          "name": "maxWidth",
          "order": 0,
          "type": "int",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "blob",
        "blob",
        "document",
        "blob"
      ],
      "since": "",
      "url": "Picture.Resize",
      "version": "10.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "org.nuxeo.ecm.platform.picture.operation",
      "hierarchyPath": "/op:Image.Blob.Resize",
      "label": "Image.Blob.Resize",
      "name": "Image.Blob.Resize",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "blob",
        "blob"
      ],
      "since": "",
      "url": "Image.Blob.Resize",
      "version": "10.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.platform.picture.operation",
      "description": "Recompute the picture views of the documents resulting from the provided NXQL query.",
      "hierarchyPath": "/op:Picture.RecomputeViews",
      "label": "Recompute Picture Views",
      "name": "Picture.RecomputeViews",
      "operationClass": "org.nuxeo.ecm.platform.picture.operation.RecomputePictureViews",
      "params": [
        {
          "description": "NXQL query to collect the documents whose picture views to recompute.",
          "isRequired": true,
          "name": "query",
          "order": 0,
          "type": "string",
          "values": [
            "SELECT * FROM Document WHERE ecm:mixinType = 'Picture' AND picture:views/*/title IS NULL"
          ],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "since": "10.3",
      "url": "Picture.RecomputeViews",
      "version": "10.10"
    }
  ],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.ecm.core.bulk",
        "org.nuxeo.ecm.core.management",
        "org.nuxeo.ecm.core.storage.mongodb",
        "org.nuxeo.ecm.platform.audit",
        "org.nuxeo.ecm.platform.picture.core",
        "org.nuxeo.web.ui"
      ],
      "conflicts": [],
      "dependencies": [
        "nuxeo-10.10-HF08:1.0.0"
      ],
      "hierarchyPath": "/nuxeo-10.10-HF09-1.0.0",
      "id": "nuxeo-10.10-HF09-1.0.0",
      "name": "nuxeo-10.10-HF09",
      "optionalDependencies": [],
      "packageType": "hotfix",
      "title": "Nuxeo 10.10-HF09",
      "version": "1.0.0"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1547942400000,
  "version": "10.10"
}